Junior — Middle
É possível instanciar uma classe abstrata diretamente no código?
sobes.tech IA
Resposta da IA
Em C# não é possível instanciar diretamente uma classe abstrata. Isto deve-se ao facto de uma classe abstrata poder conter métodos abstratos sem implementação, e o compilador não permitirá criar um objeto dessa classe.
Para usar uma classe abstrata, é necessário criar uma classe derivada que implemente todos os métodos abstratos, e essa classe derivada pode então ser instanciada.
Exemplo:
abstract class Animal
{
public abstract void MakeSound();
}
class Dog : Animal
{
public override void MakeSound() {
Console.WriteLine("Au au!");
}
}
// Erro: não é possível criar um objeto de uma classe abstrata
// Animal a = new Animal();
// Correto:
Animal dog = new Dog();
dog.MakeSound(); // Vai mostrar "Au au!"