Наследование Java
Наследование Java (подкласс и суперкласс)
В Java можно наследовать атрибуты и методы от одного класса к другому. Мы разделяем «концепцию наследования» на две категории:
- подкласс (дочерний) - класс, который наследуется от другого класса
- суперкласс (родительский) - класс, наследуемый от
Чтобы наследоваться от класса, используйте extends
ключевое слово.
В приведенном ниже примере Car
класс (подкласс) наследует атрибуты и методы от Vehicle
класса (суперкласса):
Пример
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);
}
}
Вы заметили protected
модификатор в Vehicle?
Мы устанавливаем атрибуту бренда в Vehicle модификатор protected
доступа . Если бы было установлено значение private
, класс Car не смог бы получить к нему доступ.
Почему и когда использовать «Наследование»?
- Это полезно для повторного использования кода: повторно используйте атрибуты и методы существующего класса при создании нового класса.
Совет: также взгляните на следующую главу, Полиморфизм , в которой используются унаследованные методы для выполнения различных задач.
Последнее ключевое слово
Если вы не хотите, чтобы другие классы наследовали от класса, используйте 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)