Rozwój Java dla początkujących.

Dziedziczenie w Javie - podstawy i przykłady

Wszystkie filmy z tutorialu Rozwój w Javie dla początkujących.

Dziedziczenie jest centralnym pojęciem w programowaniu obiektowym (OOP) i często uważane jest za jeden z fundamentów zwiększania efektywności. W tym samouczku pogłębisz swoją wiedzę na temat dziedziczenia w Java. Nauczysz się, jak zarządzać modyfikatorami dostępu, korzystać z konstruktorów oraz jaką rolę odgrywa enkapsulacja w dziedziczeniu.

Najważniejsze wnioski

  • Dziedziczenie umożliwia dziedziczenie właściwości i metod klasy.
  • Modyfikator dostępu private ogranicza dostęp do zmiennych lub metod, podczas gdy protected umożliwia rozszerzony dostęp wewnątrz klas dziedziczących z pierwotnej klasy.
  • Konstruktory muszą być wywoływane w podklasie, aby poprawnie zainicjować obiekty.
  • Metody interfejsu można uogólniać, gdy istnieje wiele specyficznych klas.

Instrukcja krok po kroku

Modyfikatory dostępu: protected vs. private

Jeśli w klasie takiej jak Pojazd zadeklarujesz zmienną (np. kolor) jako protected, możesz używać tej zmiennej bezpośrednio w klasie dziedziczącej (np. Samochód). Jeśli jednak zadeklarujesz zmienną jako private, w podklasie nie będziesz miał do niej bezpośredniego dostępu.

Dziedziczenie w Javie - podstawy i przykłady

To konkretne oznacza, że dostęp do zmiennych private możliwy jest tylko przez metody setter i getter.

Przykład pokazuje, że musimy użyć setFarbe i getFarbe, aby uzyskać dostęp do prywatnej zmiennej color.

Dziedziczenie w Javie - podstawy i przykłady

Jeśli zmienna jest zadeklarowana jako protected, możesz po prostu uzyskać do niej dostęp w klasie Samochód i zmienić wartość.

Użycie konstruktorów w dziedziczeniu

Podczas definiowania podklasy musisz upewnić się, że konstruktor klasy nadrzędnej jest poprawnie wywoływany.

Dziedziczenie w Javie - podstawy i przykłady

Zapewnia to, że kolor jest poprawnie inicjowany podczas tworzenia obiektu Samochód.

Dziedziczenie w Javie - podstawy i przykłady

Upewnij się, że definiujesz konstruktor w podklasie, który odpowiednio przekazuje parametry klasy nadrzędnej.

Dziedziczenie i wywołania metod

Dwie klasy, Pojazd i Samochód, umożliwiają korzystanie z ogólnych zmiennych i metod. Jeśli zdefiniujesz metodę w Pojazd, możesz użyć tej metody również w Samochód, nie pisząc jej ponownie.

Dziedziczenie w Javie - podstawy i przykłady

Wywołuje się tutaj metoda fahrzeugFarbeAusgeben, która wypisuje kolor uzyskany za pomocą metody getFarbe.

Ograniczenia przy wywoływaniu metod

Jeśli próbujesz wywołać metodę w podklasie, która nie jest dostępna dla tej klasy, otrzymasz błąd kompilacji. W naszym przykładzie obiekt Pojazd musi być przekazany, aby wywołać metodę getFarbe.

Dziedziczenie w Javie - podstawy i przykłady

Oznacza to praktycznie, że musisz upewnić się, że metoda odpowiada twojemu typowi danych przed jej wywołaniem. Możesz więc przekazać rower, samochód lub oba do metody, która oczekuje jedynie obiektów Pojazd.

Przykład wywołania metod instancji w kontekstach statycznych

Warto zauważyć, że w metodach statycznych (static) nie można używać słowa kluczowego this, ponieważ nie odnosi się ono do konkretnej instancji. W takich przypadkach warto rozważyć użycie innej metody lub przekształcenie logiki.

Dziedziczenie w Javie - podstawy i przykłady

Dzięki temu wywołaniu kolor dla obiektu meinAuto zostanie poprawnie wypisany.

Podsumowanie - Dziedziczenie w Java: Przewodnik dla początkujących

Dziedziczenie jest ważnym pojęciem w programowaniu w Java, które pomaga w modularizacji i ponownym wykorzystaniu kodu. W tym samouczku poznałeś podstawy modyfikatorów dostępu, konstruktorów i wywołań metod w kontekście dziedziczenia.

Najczęściej zadawane pytania

Jak mogę uzyskać dostęp do prywatnych zmiennych w podklasie?Do prywatnych zmiennych w podklasie nie można uzyskać dostępu bezpośrednio. Użyj metod getter i setter.

Jaka jest różnica między protected a private?protected pozwala na dostęp w podklasie i w tym samym pakiecie, podczas gdy private jest dostępny tylko wewnątrz własnej klasy.

Czy muszę definiować konstruktory w podklasie?Tak, jeśli dostosowałeś konstruktor klasy nadrzędnej, musisz również odpowiednio zdefiniować konstruktory w podklasie.

Czy mogę swobodnie nadpisywać metody klas nadrzędnych w klasach podrzędnych?Tak, możesz nadpisywać metody, które nie są oznaczone jako final lub static, w podklasie, aby zaimplementować specyficzne zachowanie.