Sobes.tech
Back to questions
Junior — Middle
81

Объясните концепцию абстрактных классов в объектно-ориентированном программировании.

Companies where asked
Perfomance lab

Answer from AI

sobes.tech AI

Абстрактный класс — это класс, который не предназначен для создания экземпляров напрямую, а служит как базовый для других классов. Он может содержать как реализованные методы, так и абстрактные (без реализации), которые должны быть переопределены в подклассах.

Это позволяет задать общий интерфейс и поведение для группы связанных классов, обеспечивая полиморфизм и повторное использование кода. Например, абстрактный класс Animal может иметь абстрактный метод makeSound(), который реализуют конкретные животные:

abstract class Animal {
    abstract void makeSound();

    void sleep() {
        System.out.println("Sleeping...");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Bark");
    }
}

Здесь нельзя создать new Animal(), но можно создать new Dog(), который реализует все абстрактные методы.