Dědičnost Java
Dědičnost Java (podtřída a nadtřída)
V Javě je možné dědit atributy a metody z jedné třídy do druhé. „Koncept dědičnosti“ seskupujeme do dvou kategorií:
- podtřída (dítě) - třída, která dědí z jiné třídy
- nadtřída (rodič) - třída, ze které se dědí
Chcete-li dědit z třídy, použijte extends
klíčové slovo.
V níže uvedeném příkladu Car
třída (podtřída) dědí atributy a metody z Vehicle
třídy (nadtřídy):
Příklad
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {
// Create a myCar object
Car myCar = new Car();
// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
Všimli jste si protected
modifikátoru ve Vehicle?
Atribut značky ve Vehicle nastavíme na modifikátor protected
přístupu . Pokud by byla nastavena na private
, třída Car by k ní neměla přístup.
Proč a kdy používat „dědičnost“?
- Je to užitečné pro znovupoužitelnost kódu: při vytváření nové třídy znovu použijte atributy a metody existující třídy.
Tip: Podívejte se také na další kapitolu Polymorfismus , která používá k provádění různých úkolů zděděné metody.
Konečné klíčové slovo
Pokud nechcete, aby ostatní třídy dědily z třídy, použijte final
klíčové slovo:
Pokud se pokusíte o přístup ke final
třídě, Java vygeneruje chybu:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
Výstup bude něco takového:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends
Vehicle {
^
1 error)