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

Таким образом, абстрактные классы помогают создавать шаблоны для семейства связанных классов, обеспечивая обязательную реализацию ключевых методов в наследниках.