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ă.