Sobes.tech
Junior
111
questionbank

Что такое абстрактный класс?

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

sobes.tech AI

Абстрактный класс — это класс, который нельзя инстанцировать напрямую. Он служит базовым классом для других классов и может содержать абстрактные члены (методы, свойства, индексаторы, события), которые должны быть реализованы в производных классах.

Основные особенности:

  • Объявляется с ключевым словом abstract.
  • Может содержать как абстрактные, так и неабстрактные (обычные) члены.
  • Абстрактные члены не имеют реализации в базовом классе.
  • Производный класс должен либо реализовать все абстрактные члены базового класса, либо сам быть объявлен как абстрактный.

Используется для определения общего контракта для группы связанных классов и для реализации принципа Template Method.

// Объявление абстрактного класса
public abstract class Shape
{
    // Абстрактный метод - не имеет реализации
    public abstract double Area();

    // Неабстрактный метод
    public void Display()
    {
        Console.WriteLine("This is a shape.");
    }
}

// Производный класс, наследующий от абстрактного
public class Circle : Shape
{
    public double Radius { get; set; }

    // Реализация абстрактного метода Area
    public override double Area()
    {
        return Math.PI * Radius * Radius;
    }
}