Dziedziczenie Javy
Dziedziczenie Java (podklasa i nadklasa)
W Javie możliwe jest dziedziczenie atrybutów i metod z jednej klasy do drugiej. Grupujemy „koncepcję dziedziczenia” na dwie kategorie:
- subclass (child) - klasa, która dziedziczy z innej klasy
- superclass (parent) - klasa, z której jest dziedziczona
Aby dziedziczyć z klasy, użyj extends
słowa kluczowego.
W poniższym przykładzie Car
klasa (podklasa) dziedziczy atrybuty i metody z Vehicle
klasy (superklasa):
Przykład
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);
}
}
Czy zauważyłeś protected
modyfikator w pojeździe?
Ustawiamy atrybut marki w pojeździe na protected
modyfikator dostępu . Gdyby był ustawiony na private
, klasa Car nie miałaby do niego dostępu.
Dlaczego i kiedy używać „dziedziczenia”?
- Przydaje się do ponownego wykorzystania kodu: ponownie używaj atrybutów i metod istniejącej klasy podczas tworzenia nowej klasy.
Wskazówka: spójrz również na następny rozdział, Polimorfizm , który wykorzystuje odziedziczone metody do wykonywania różnych zadań.
Ostatnie słowo kluczowe
Jeśli nie chcesz, aby inne klasy dziedziczyły po klasie, użyj final
słowa kluczowego:
Jeśli spróbujesz uzyskać dostęp do final
klasy, Java wygeneruje błąd:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
Wynik będzie wyglądał mniej więcej tak:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends
Vehicle {
^
1 error)