Sobes.tech
Middle

Čo sa stane, ak v abstraktnej triede definujete bežnú metódu?

sobes.tech AI

Odpoveď od AI

Ak v abstraktnej triede definujete bežný (neabstraktný) metódu, táto metóda bude mať implementáciu a môže byť volaná na objektoch podtried, ktoré dedičia od tejto abstraktnej triedy.

Abstraktná trieda slúži ako základná trieda, ktorá môže obsahovať ako abstraktné metódy (bez implementácie), tak bežné metódy s implementáciou. Podtriedy sú povinné implementovať všetky abstraktné metódy, ale môžu používať alebo prepísať bežné metódy podľa potreby.

Príklad v C#:

abstract class Animal
{
    public void Eat()  // bežná metóda s implementáciou
    {
        Console.WriteLine("Zviera je");
    }

    public abstract void MakeSound();  // abstraktná metóda
}

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

V tomto príklade je metóda Eat definovaná v abstraktnej triede a je dostupná všetkým dedičom bez nutnosti prepísania. To umožňuje abstraktnej triede poskytovať všeobecnú funkcionalitu, zatiaľ čo abstraktné metódy vyžadujú implementáciu špecifického správania.