Dziedziczenie to jeden z podstawowych mechanizmów programowania obiektowego i pozwala współdzielić funkcjonalności pomiędzy klasami. Klasa, która „udziela” swoich składowych lub metod innej klasie nazywa się bazową. Natomiast klasa, która dziedziczy (rozszerza) funkcjonalności klasy bazowej to klasa pochodna lub potomna. Połączenie klas odbywa się za pomocą słowa kluczowego extends.

Klasa potomna może dziedziczyć tylko jedną klasę bazową.

Aby zrozumieć pojęcie dziedziczenia posłużymy się trywialnym przykładem:

Rodzice mogą mieć dziecko lub dzieci, a te z kolei dziedziczą po nich nazwisko (a dokładnie po swoim ojcu). Stwórzmy więc klasę bazową Parents (Rodzice) i zadeklarujmy w niej lastname (nazwisko). Standardowo, dodajmy również settery i gettery aby mieć dostęp do zmiennej prywatnej lastname.

Teraz stwórzmy klasę potomną Children (Dzieci), która będzie zawierać składową firstname (imię) oraz dziedziczyć nazwisko z klasy rodziców – extends Parents:

Na koniec przetestujmy dziedziczenie tworząc klasę FamilyTest:

Dzięki dziedziczeniu zmienna referencyjna child (dziecko) ma dostęp do obu klas (Children oraz Parents).

Jak widać z przykładu, dziedziczenie to prosty mechanizm a jego znajomość pozwala na lepszą organizację kodu. Możemy rozbić program na osobne klasy, które z kolei mogą być wykorzystywane w innych podprogramach itp.

Czytaj dalej: INTERFEJSY →