Sobes.tech
Junior — Middle

Jak w C# realizuje się nadpisywanie metod w dziedziczonych klasach?

sobes.tech AI

Odpowiedź od AI

W C#, nadpisywanie metod w klasach dziedziczących odbywa się za pomocą słów kluczowych virtual w klasie bazowej i override w klasie pochodnej. Metoda w klasie bazowej jest deklarowana jako virtual, co pozwala potomkom ją nadpisywać. W klasie pochodnej metoda o tej samej nazwie i sygnaturze jest deklarowana z użyciem 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");
    }
}

Jeśli metoda klasy bazowej nie jest zadeklarowana jako virtual, abstract lub override, nie można jej nadpisać, ale można ją ukryć za pomocą słowa kluczowego new.