Junior — Middle
Pouvez-vous expliquer ce que sont les classes abstraites et comment elles sont utilisées en programmation orientée objet?
sobes.tech IA
Réponse de l'IA
Абстрактный класс в 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(); // Выведет "Спит"
Таким образом, абстрактные классы помогают создавать шаблоны для семейства связанных классов, обеспечивая обязательную реализацию ключевых методов в наследниках.