Sobes.tech
Junior
125
questionbank

Может ли в абстрактном классе не содержаться ни одного абстрактного метода?

Answer from AI

sobes.tech AI

Да, может. Абстрактный класс может содержать только неабстрактные члены (поля, свойства, методы с реализацией).

Целью такого класса является:

  1. Предоставление базовой реализации для производных классов.
  2. Запрет создания экземпляров самого абстрактного класса, гарантируя, что будет использоваться одна из его конкретных реализаций.
// Абстрактный класс без абстрактных методов
public abstract class BaseClass
{
    public int Id { get; set; }

    public void DisplayInfo() // Неабстрактный метод с реализацией
    {
        Console.WriteLine($"ID: {Id}");
    }
}

// Наследуемый конкретный класс
public class DerivedClass : BaseClass
{
    // Может добавлять свои члены или использовать унаследованные
}

// Пример использования
// BaseClass baseObject = new BaseClass(); // Ошибка: нельзя создать экземпляр абстрактного класса
DerivedClass derivedObject = new DerivedClass { Id = 10 };
derivedObject.DisplayInfo(); // Вывод: ID: 10