Junior — Middle
Vysvetlite koncept virtuálnych metód v jazyku C# a ich úlohu pri implementácii polymorfizmu.
sobes.tech AI
Odpoveď od AI
V C# sú virtuálne metódy, ktoré sú deklarované kľúčovým slovom virtual a môžu byť prepísané v odvodených triedach pomocou override. Toto je základ pre implementáciu polymorfizmu — schopnosti volať metódy odvodených tried cez odkazy na základnú triedu.
Keď je metóda deklarovaná ako virtuálna, volanie tejto metódy je určené počas behu (dynamické viazanie), nie počas kompilácie. To umožňuje, aby sa objekt správal odlišne v závislosti od jeho skutočného typu.
Príklad:
class Animal {
public virtual void Speak() {
Console.WriteLine("Zviera vydáva zvuk");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Haf haf");
}
}
Animal a = new Dog();
a.Speak(); // Vypíše "Haf haf"
Tu, aj keď má premenná a typ Animal, volá sa prepísaná metóda Speak() triedy Dog vďaka virtuálnej metóde.