Junior — Middle
Објасните концепт виртуелних метода у језику C# и њихову улогу у имплементацији полиморфизма.
sobes.tech АИ
Одговор од АИ
У C# виртуелне методе су методи који се декларативно означавају кључном речи virtual, а могу се преоптеретити у наследним класама коришћењем override. Ово је основа за имплементацију полиморфизма — могућности да се позивају методи наследних класа преко референци на базну класу.
Када је метод декларативно означен као виртуелан, позив тог метода се одређује у време извршавања (динамичко везивање), а не у време компајлирања. Ово омогућава да објекат понаша се различито у зависности од његовог стварног типа.
Пример:
class Animal {
public virtual void Speak() {
Console.WriteLine("Животиња издаје звук");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Га-га");
}
}
Animal a = new Dog();
a.Speak(); // Исписује "Га-га"
Овде, иако променљива a има тип Animal, позива се преоптерећена метода Speak() класе Dog захваљујући виртуелној методу.