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 реализует конкретное поведение.