Obsah:
Definice - Co znamená odvozená třída?
Odvozená třída v kontextu C # je třída vytvořená nebo odvozená z jiné existující třídy. Existující třída, ze které se odvozená třída vytvoří díky dědičnosti, se nazývá základní nebo super třída.
Při odvozování ze základní třídy odvozená třída implicitně zdědí všechny členy (kromě konstruktorů a destruktorů), které znovu používá, rozšiřuje a upravuje chování základní třídy. Odvozená třída přepíše vlastnosti a metody základní třídy tak, aby představovala specializovanou verzi základní třídy. C # poskytuje schopnost potlačovat a skrývat metody základní třídy v odvozené třídě, díky níž se obě třídy mohou volně vyvíjet a udržovat binární kompatibilitu.
Techopedia vysvětluje odvozenou třídu
Následuje několik vlastností odvozených tříd v C #:
- Stejně jako v Javě a na rozdíl od C ++ nemůže odvozená třída mít více než jednu základní třídu, ale může být odvozena z více než jednoho rozhraní. Zdědí však všechny členy svých mateřských základních tříd deklarovaných v hierarchii dědičnosti kvůli tranzitivní povaze dědičnosti
- Modifikátory přístupu použité v prohlášení deklarace odvozené třídy určují oprávnění k použití členů její základní třídy
- Kód v konstruktoru odvozené třídy, který je spuštěn při jeho vytvoření, bude proveden až po provedení konstruktoru základní třídy
- Odvozená třída musí použít modifikátor 'override' k deklaraci virtuální metody (deklarované ve své základní třídě pomocí 'virtuálního' klíčového slova), které musí být přepsáno. Přepsat lze pouze metody a vlastnosti instance
- Odvozená třída může mít novou metodu, která skrývá virtuální metodu deklarovanou v základně (s podobným podpisem) pomocí klíčového slova 'new'. Pro přístup k metodě v základní třídě z odvozené třídy lze použít klíčové slovo „základní“
- Třída může zabránit odvození deklarováním jako 'zapečetěné' a nemůže být použita jako základní třída
- Odvozenou třídu se základní třídou jako abstraktní třídu lze vytvořit, pokud odvozená třída není deklarována jako abstraktní a odvozená třída má implementaci pro všechny abstraktní metody deklarované v základní třídě.