Sobes.tech
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 захваљујући виртуелној методу.