Sobes.tech
Back to questions
Junior — Middle
70

Когда и почему стоит применять абстрактные классы в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

Абстрактные классы в C# применяются, когда нужно определить базовый класс, который задаёт общий интерфейс и поведение для группы подклассов, но сам по себе не должен создавать объекты. Они позволяют реализовать частично общий функционал, оставляя детали реализации подклассам.

Использовать абстрактный класс стоит, если:

  • Есть общий набор методов и свойств, которые должны быть у всех наследников.
  • Нужно обеспечить некоторую реализацию по умолчанию, которую можно переопределить.
  • Требуется, чтобы класс нельзя было инстанцировать напрямую.

Пример:

abstract class Animal
{
    public abstract void MakeSound(); // обязательный для реализации метод

    public void Sleep()  // общий метод с реализацией
    {
        Console.WriteLine("Спит...");
    }
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Гав-гав");
    }
}

Здесь Animal — абстрактный класс, который задаёт контракт и частичную реализацию, а Dog реализует конкретное поведение.