Spis treści
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:
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.