Sobes.tech
Junior — Middle
85

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

Ответ от нейросети

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();     // Выведет: Спит...

Таким образом, абстрактный класс задаёт контракт и общую логику, которую наследники дополняют и конкретизируют.