Junior — Middle
Feltételezhető, hogy az Init metódus az alosztályban örökli vagy felülírja a bázissal osztály implementációját?
sobes.tech MI
Válasz az MI-től
A Init metódus egy származtatott osztályban nem örökli az alap osztály implementációját, ha újra deklarálják (azaz ugyanazzal a névvel, de saját megvalósítással). Ebben az esetben azt mondják, hogy a metódus felül van írva (override). A felülírás azt jelenti, hogy a származtatott osztály objektumánál a metódus hívásakor az ő verzióját fogja használni, nem az alapértelmezettet.
Ha a Init metódus a származtatott osztályban nincs deklarálva, akkor az az alap osztályból öröklődik és változtatás nélkül használható.
Példa C#-ban:
class BaseClass {
public virtual void Init() {
Console.WriteLine("Alap osztály Init-je");
}
}
class DerivedClass : BaseClass {
public override void Init() {
Console.WriteLine("Származtatott osztály Init-je");
}
}
Itt a DerivedClass-ban az Init felülírja a BaseClass-ból örökölt metódust. Ha az Init nincs deklarálva a DerivedClass-ban, akkor az alapértelmezett implementációt használja.