Rozdział 10 - Dziedziczenie i polimorfizm - Limit rozszerzanych klas

W języku Java każda klasa może bezpośrednio rozszerzać tylko jedną klasę. Próba kompilacji poniższej klasy Kot zakończyłaby się błędem:

public class Zwierze {
  // ...
}
public class NajlepszyPrzyjacielCzlowieka {
  // ...
}
public class Kot extends Zwierze, NajlepszyPrzyjacielCzlowieka {
  // ...
}

Komunikat zwracany przez kompilator:

Kot.java:1: error: '{' expected class Kot extends Zwierze, NajlepszyPrzyjacielCzlowieka { ^ 1 error

Kompilator spodziewał się klamry otwierającej ciało klasy Kot zamiast przecinka i nazwy kolejnej klasy, którą chcieliśmy rozszerzyć.

Klasa nie może bezpośrednio rozszerzać więcej niż jednej klasy, ale pośrednio tak, tzn. klasy mogą mieć w swojej hierarchii dziedziczenia wiele klas:

public class Zwierze {
  // ...
}
public class Ssak extends Zwierze {
  // ..
}
public class Kot extends Ssak {
  // ...
}
public class Dachowiec extends Kot {
  // ...
}

W powyższym przypadku, klasa Dachowiec bezpośrednio rozszerza klasę Kot, a ponadto ma w swojej hierarchii dziedziczenia klasy Ssak oraz Zwierze (a także klasę Object, która jest tematem jednego z kolejnych rozdziałów). Innymi słowy, klasa Dachowiec pośrednio dziedziczy po tych klasach.

Pamiętaj, że w języku Java klasy mogą rozszerzać maksymalnie jedną, wybraną przez Ciebie klasę, tzn. po słowie kluczowym extends możesz umieścić nazwę co najwyżej jednej klasy.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.