Ответ
Наследование — это механизм объектно-ориентированного программирования, который позволяет одному классу (дочернему, подклассу) наследовать структуру (поля) и поведение (методы) другого класса (родительского, суперкласса). Это способствует повторному использованию кода и созданию иерархии "is-a" (является).
Ключевые принципы в Java:
- Ключевое слово
extends: Класс-наследник объявляется с помощьюextends. - Наследование членов: Подкласс наследует все не-private поля и методы суперкласса.
- Переопределение методов (Override): Подкласс может предоставить свою собственную реализацию унаследованного метода, используя аннотацию
@Override. - Одиночное наследование: Класс в Java может наследоваться только от одного прямого суперкласса.
- Конструкторы: Конструкторы не наследуются, но дочерний конструктор должен вызывать конструктор родителя (явно через
super(...)или неявно, если есть конструктор по умолчанию).
Пример:
// Родительский класс (суперкласс)
class Vehicle {
protected String brand; // protected даёт доступ подклассам
public Vehicle(String brand) {
this.brand = brand;
}
public void honk() {
System.out.println("Beep beep!");
}
}
// Дочерний класс (подкласс)
class Car extends Vehicle {
private int numberOfDoors;
public Car(String brand, int doors) {
super(brand); // Вызов конструктора родительского класса
this.numberOfDoors = doors;
}
@Override // Переопределение метода
public void honk() {
System.out.println(brand + " car honks: Honk honk!");
}
public void displayInfo() {
System.out.println("Brand: " + brand + ", Doors: " + numberOfDoors);
}
}
// Использование
Car myCar = new Car("Toyota", 4);
myCar.honk(); // Вывод: Toyota car honks: Honk honk!
myCar.displayInfo();// Вывод: Brand: Toyota, Doors: 4