Dziedziczenie
Kurs Java · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.
Dziedziczenie pozwala rozszerzać zachowanie klasy bazowej.
Jak to działa?
extends oznacza dziedziczenie. @Override informuje, że metoda zastępuje implementację z nadklasy. Stosuj dziedziczenie wtedy, gdy naprawdę zachodzi relacja „jest rodzajem”.
Przykład 1 — poznaj zapis
class Animal {
String sound() { return "..."; }
}
class Dog extends Animal {
@Override String sound() { return "Hau"; }
}
Metoda sound() dla Dog zwraca „Hau”.
Przeczytaj kod linijka po linijce
class Animal {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.String sound() { return "..."; }Zwracamy wyliczoną wartość do miejsca wywołania funkcji.class Dog extends Animal {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
Hau (po wywołaniu sound() na Dog)
Przykład 2 — podobny problem, inne dane
Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.
class Animal { String sound() { return "..."; } }
class Cat extends Animal { @Override String sound() { return "miau"; } }
// main: System.out.println(new Cat().sound());
miau (po wywołaniu w main)
Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.
Spróbuj samodzielnie
Zdefiniuj klasę Cat dziedziczącą po Animal.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.