Back to questions
Junior — Middle
63
Можете объяснить, что такое абстрактные классы и как они используются в объектно-ориентированном программировании?
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 = new Dog();
dog.MakeSound(); // Выведет "Гав-гав"
dog.Sleep(); // Выведет "Спит"
Таким образом, абстрактные классы помогают создавать шаблоны для семейства связанных классов, обеспечивая обязательную реализацию ключевых методов в наследниках.