Sobes.tech
Junior — Middle

Se poate considera că metoda Init din clasa derivată moștenește sau suprascrie implementarea din clasa de bază?

sobes.tech AI

Răspuns de la AI

Metoda Init într-o clasă derivată nu moștenește implementarea din clasa de bază dacă este redefinită (adică, cu același nume, dar cu propria sa implementare). În acest caz, se spune că metoda a fost suprascrisă (override). Suprascrierea înseamnă că, la apelarea metodei pe un obiect al clasei derivate, va fi utilizată versiunea sa, nu cea a clasei de bază.

Dacă metoda Init în clasa derivată nu este declarată, ea este moștenită din clasa de bază și utilizată fără modificări.

Exemplu în C#:

class BaseClass {
    public virtual void Init() {
        Console.WriteLine("Init al clasei de bază");
    }
}

class DerivedClass : BaseClass {
    public override void Init() {
        Console.WriteLine("Init al clasei derivate");
    }
}

Aici, Init în DerivedClass suprascrie metoda din BaseClass. Dacă Init nu este declarat în DerivedClass, se folosește implementarea de bază.