Sobes.tech
Junior — Middle

Czy można zmienić funkcjonalność metody, nadpisując ją w klasie dziedziczącej?

sobes.tech AI

Odpowiedź od AI

Tak, w C# można zmienić funkcjonalność metody, nadpisując ją w klasie dziedziczącej. Aby to zrobić, metoda bazowa musi być zadeklarowana ze słowem kluczowym virtual, a w klasie pochodnej można ją nadpisać za pomocą słowa kluczowego override.

Przykład:

class BaseClass
{
    public virtual void ShowMessage()
    {
        Console.WriteLine("Wiadomość z klasy bazowej");
    }
}

class DerivedClass : BaseClass
{
    public override void ShowMessage()
    {
        Console.WriteLine("Nadpisana wiadomość z klasy pochodnej");
    }
}

Wywołanie metody ShowMessage na obiekcie DerivedClass wykona nadpisaną wersję metody.