Dalej•LEKCJA 17 / 24

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

  1. class Animal {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
  2. String sound() { return "..."; }Zwracamy wyliczoną wartość do miejsca wywołania funkcji.
  3. class Dog extends Animal {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
Oczekiwany wynik / efektpo uruchomieniu przykładu
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());
Wynik drugiego przykładupo uruchomieniu przykładu
miau (po wywołaniu w main)
Sprawdź, czy rozumiesz

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.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.