Obsah:
Definícia - Čo znamená dedičstvo?
Dedičnosť v C # je schopnosť vytvoriť triedu, ktorá zdedí atribúty a správanie z existujúcej triedy. Novo vytvorená trieda je odvodená (alebo podradená) trieda a existujúca trieda je základná (alebo nadradená) trieda.
Dedičnosť je jednou z kľúčových vlastností objektovo orientovaného programovania. Výhody dedičstva sú súčasťou dôvodu, prečo je možné štrukturálne programovanie nahradiť objektovo orientovaným programovaním.
Dedičnosť v C # je navrhnutá tak na úrovni implementácie, ako aj na úrovni rozhrania. Dedičstvo implementácie zahŕňa kód z jednej triedy, ktorý sa opakovane používa v inej, zatiaľ čo dedičstvo rozhrania znamená dedenie iba podpisov funkcií z jedného typu na druhý.
Dedičstvo je známe aj ako zovšeobecnenie.
Techopedia vysvetľuje dedičnosť
C # nepodporuje viacnásobné dedenie, čo znamená, že trieda môže pochádzať iba z jednej základnej triedy, hoci trieda môže byť odvodená z jedného alebo viacerých rozhraní. Z dôvodu tranzitívnej povahy dedičstva dedená trieda dedí všetkých členov svojich predkov.
Napríklad triedy, Auto a Autobus možno odvodiť zo základnej triedy, Vozidlo, dedením, pretože Auto aj Autobus sú typmi vozidiel.
Medzi hlavné črty dedičstva patria:
- V odvodenej triede sú prístupní všetci členovia základnej triedy s výnimkou tých, ktorí majú súkromnú prístupnosť.
- Všetci členovia základnej triedy sú zdedení zo základnej triedy s výnimkou konštruktorov a deštruktorov.
- Na rozdiel od C ++, virtuálne metódy v odvodenej triede musia použiť modifikátor „override“ na potlačenie zdedeného člena.
- Na skrytie zdedeného člena s rovnakým menom a podpisom v odvodenej triede sa môže použiť „nový“ modifikátor.
- Aby sa zabránilo priamemu vytvoreniu triedy, môže sa použiť „abstraktný“ modifikátor.
- Aby sa zabránilo ďalšej derivácii základnej triedy, možno ju deklarovať pomocou "zapečateného" modifikátora.
- Umožňuje konštrukciu hierarchie súvisiacich tried, ktoré môžu opätovne použiť, rozšíriť a zmeniť správanie definované v existujúcich triedach.
- Umožňuje opakované použitie kódu, čím sa znižuje čas a úsilie pri kódovaní a testovaní.
- Pomáha zlepšovať modularitu a výkon rozdelením veľkých častí kódu na menšie, lepšie spravovateľné časti.
- Tvorí prostriedok na dosiahnutie polymorfizmu, ktorý umožňuje objektu reprezentovať viac ako jeden typ.
Táto definícia bola napísaná v kontexte C #