Back to questions
Junior — Middle
69
Можно ли инстанцировать абстрактный класс непосредственно в коде?
Answer from AI
sobes.tech AI
В C# абстрактный класс нельзя инстанцировать напрямую. Это связано с тем, что абстрактный класс может содержать абстрактные методы без реализации, и компилятор не позволит создать объект такого класса.
Для использования абстрактного класса нужно создать производный класс, который реализует все абстрактные методы, и уже этот производный класс можно инстанцировать.
Пример:
abstract class Animal
{
public abstract void MakeSound();
}
class Dog : Animal
{
public override void MakeSound() {
Console.WriteLine("Woof!");
}
}
// Ошибка: нельзя создать объект абстрактного класса
// Animal a = new Animal();
// Правильно:
Animal dog = new Dog();
dog.MakeSound(); // Выведет "Woof!"