Junior — Middle
87
Можете пояснить, что подразумевается под абстрактным классом в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
Абстрактный класс в объектно-ориентированном программировании — это класс, который не предназначен для создания экземпляров напрямую. Он служит как базовый шаблон для других классов и может содержать как реализованные методы, так и абстрактные (без реализации), которые должны быть обязательно переопределены в наследниках.
В C# абстрактный класс объявляется с помощью ключевого слова abstract. Такой класс помогает определить общий интерфейс и поведение для группы связанных классов, обеспечивая при этом возможность частичной реализации.
Пример:
abstract class Animal
{
public abstract void MakeSound(); // абстрактный метод
public void Sleep()
{
Console.WriteLine("Спит...");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Гав-гав");
}
}
// Нельзя создать объект Animal напрямую:
// Animal a = new Animal(); // Ошибка
Dog dog = new Dog();
dog.MakeSound(); // Выведет: Гав-гав
dog.Sleep(); // Выведет: Спит...
Таким образом, абстрактный класс задаёт контракт и общую логику, которую наследники дополняют и конкретизируют.