Sobes.tech
Back to questions
Junior — Middle
57

В каких ситуациях рекомендуется применять абстрактный класс в объектно-ориентированном проектировании?

Companies where asked
А Деньги

Answer from AI

sobes.tech AI

Абстрактный класс рекомендуется использовать, когда нужно задать общий шаблон для группы связанных классов, но при этом нельзя создать экземпляр самого абстрактного класса. Он позволяет определить общие методы и поля, а также объявить абстрактные методы, которые должны быть реализованы в подклассах.

Ситуации применения:

  • Когда несколько классов имеют общую функциональность, которую можно реализовать в базовом абстрактном классе.
  • Когда нужно обеспечить частичную реализацию, оставляя детали реализации подклассам.
  • Когда требуется задать контракт (через абстрактные методы), но при этом предоставить некоторую общую логику.

Пример:

abstract class Animal {
    void breathe() {
        System.out.println("Дышит");
    }
    abstract void makeSound();
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Гав-гав");
    }
}

Здесь Animal — абстрактный класс с общей реализацией дыхания и абстрактным методом звука.