Sobes.tech
Junior — Middle

Ar įmanoma pakeisti metodo funkcionalumą jį perrašant paveldimoje klasėje?

sobes.tech AI

Atsakymas iš AI

Taip, C# galima keisti metodo funkcionalumą jį perrašant paveldėtame klasėje. Tam pagrindinis metodas turi būti deklaruotas su raktažodžiu virtual, o paveldėtame klasėje jį galima perrašyti naudojant raktažodį override.

Pavyzdys:

class BaseClass
{
    public virtual void ShowMessage()
    {
        Console.WriteLine("Pagrindinio klases pranešimas");
    }
}

class DerivedClass : BaseClass
{
    public override void ShowMessage()
    {
        Console.WriteLine("Perrašytas pranešimas iš paveldėtos klasės");
    }
}

Metodo ShowMessage iškvietimas DerivedClass objekte vykdys perrašytą metodo versiją.