Java Спадкування (Наслідування)
Java Спадкування (Субклас та Суперклас)
У Java є можливість успадковувати атрибути та методи від одного класу до іншого. Ми групуємо «концепцію успадкування» у дві категорії:
- підклас (дочірній) – клас, який успадковує інший клас
- суперклас (батьківський) – клас, який успадковується від
Щоб успадкувати від класу, використовуйте ключове слово extends
.
У прикладі нижче клас (підклас) Car
успадковує атрибути та методи від Vehicle
клас (надклас):
Приклад
class Vehicle {
protected String brand = "Ford"; // Vehicle атрибут
public void honk() { // Vehicle метод
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang"; // Атрибут Car
public static void main(String[] args) {
// Створити об’єкт myCar
Car myCar = new Car();
// Викличте метод honk() (з класу Vehicle) для об’єкта myCar
myCar.honk();
// Відобразити значення атрибута brand (з класу Vehicle) і значення modelName з класу Car
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
Спробуйте самі »
Ви помітили модифікатор protected
у Vehicle?
Ми встановили атрибут brand у Vehicle як protected
модифікатор доступу. Якщо для нього встановлено private
, клас Car не матиме до нього доступу.
Чому і коли використовувати «Спадок»?
- Це корисно для багаторазового використання коду: повторно використовуйте атрибути та методи існуючого класу під час створення нового класу.
Порада: також перегляньте наступний розділ, Поліморфізм, який використовує успадковані методи для виконання різних завдань.
Ключове слово final
Якщо ви не хочете, щоб інші класи успадковували клас, використовуйте ключове слово final
:
Якщо ви спробуєте отримати доступ до класу final
, Java видасть помилку:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
Виведення буде приблизно таким:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
^
1 error)