Junior — Middle
Je možné považovať, že metóda Init v odvodenom triede dedí alebo prepíše implementáciu z základnej triedy?
sobes.tech AI
Odpoveď od AI
Metóda Init v odvodenom triede ne dedí implementáciu z základnej triedy, ak je znovu deklarovaná (t. j. s rovnakým názvom, ale vlastnou implementáciou). V takom prípade sa hovorí, že metóda je prepísaná (override). Prepísanie znamená, že pri volaní metódy na objekte odvodené triedy bude použitá práve jej verzia, nie tá zo základnej.
Ak metóda Init v odvodenom triede nie je deklarovaná, dedí sa zo základnej triedy a používa sa bez zmien.
Príklad v C#:
class BaseClass {
public virtual void Init() {
Console.WriteLine("Init základnej triedy");
}
}
class DerivedClass : BaseClass {
public override void Init() {
Console.WriteLine("Init odvodené triedy");
}
}
Tu Init v DerivedClass prepíše metódu z BaseClass. Ak Init nie je deklarovaná v DerivedClass, používa sa implementácia základnej triedy.