Что такое базовый класс (Base class) в Java?

«Что такое базовый класс (Base class) в Java?» — вопрос из категории Other, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Базовый (родительский) класс в 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) и построению полиморфных систем.