Ответ
Базовый (родительский) класс в Java — это класс, предназначенный для наследования другими классами (дочерними). Он инкапсулирует общие поля и методы, которые могут быть повторно использованы или переопределены в классах-наследниках.
Пример иерархии наследования:
// Базовый (родительский) класс
public class Animal {
protected String name; // protected позволяет доступ из классов-наследников
public Animal(String name) {
this.name = name;
}
public void makeSound() {
System.out.println("Some generic animal sound");
}
}
// Дочерний класс, расширяющий базовый
public class Dog extends Animal {
public Dog(String name) {
super(name); // Вызов конструктора родительского класса
}
@Override // Аннотация указывает на переопределение метода
public void makeSound() {
System.out.println(name + " says: Woof!");
}
// Новый метод, специфичный для Dog
public void fetch() {
System.out.println(name + " is fetching the ball.");
}
}
// Использование
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog("Rex");
myDog.makeSound(); // Вывод: Rex says: Woof!
// myDog.fetch(); // Ошибка компиляции: метод fetch() не объявлен в Animal
}
}
Ключевые моменты:
- Ключевое слово
extendsиспользуется для наследования. - Модификатор
protectedобеспечивает доступ к членам класса в пределах пакета и для дочерних классов. - Ключевое слово
superиспользуется для вызова конструктора или методов родительского класса. - Базовый класс способствует соблюдению принципа DRY (Don't Repeat Yourself) и построению полиморфных систем.