Sobes.tech
Junior

Czym jest metoda wirtualna w C#?

sobes.tech AI

Odpowiedź od AI

Metoda wirtualna w C# to metoda zadeklarowana słowem kluczowym virtual w klasie bazowej, którą można nadpisać w klasach pochodnych za pomocą słowa kluczowego override. Pozwala to na implementację polimorfizmu, gdy wywołanie metody zależy od rzeczywistego typu obiektu w czasie wykonywania, a nie od typu zmiennej.

Przykład:

class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("Zwierzę wydaje dźwięk");
    }
}

class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Hau hau");
    }
}

Animal a = new Dog();
a.Speak(); // Wypisze "Hau hau" dzięki metodzie wirtualnej

Bez virtual i override, wywołanie metody byłoby statyczne i nie uwzględniałoby rzeczywistego typu obiektu w czasie wykonywania.