Sobes.tech
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.