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.