Sobes.tech
Junior — Middle

Je možné priamo v kóde inštancovať abstraktnú triedu?

sobes.tech AI

Odpoveď od AI

V jazyku C# nie je možné priamo inštancovať abstraktnú triedu. Je to spôsobené tým, že abstraktná trieda môže obsahovať abstraktné metódy bez implementácie a prekladač neumožní vytvoriť objekt takejto triedy.

Na použitie abstraktnej triedy je potrebné vytvoriť odvodenú triedu, ktorá implementuje všetky abstraktné metódy, a túto odvodenú triedu je možné inštancovať.

Príklad:

abstract class Animal
{
    public abstract void MakeSound();
}

class Dog : Animal
{
    public override void MakeSound() {
        Console.WriteLine("Vau!");
    }
}

// Chyba: nie je možné vytvoriť objekt abstraktnej triedy
// Animal a = new Animal(); 

// Správne:
Animal dog = new Dog();
dog.MakeSound(); // Vypíše "Vau!"