Rozdiel Medzi Abstraktnou Triedou A Dedičstvom

Rozdiel Medzi Abstraktnou Triedou A Dedičstvom
Rozdiel Medzi Abstraktnou Triedou A Dedičstvom

Video: Rozdiel Medzi Abstraktnou Triedou A Dedičstvom

Video: Rozdiel Medzi Abstraktnou Triedou A Dedičstvom
Video: Webinár #42 - Špeciálne výchovno-vzdelávacie potreby a IVP na rázcestí medzi integráciou a inklúziou 2024, November
Anonim

Abstraktná trieda vs dedičstvo

Abstraktná trieda a dedičnosť sú dva dôležité objektovo orientované koncepty, ktoré sa nachádzajú v mnohých objektovo orientovaných programovacích jazykoch, ako je Java. Abstraktnú triedu možno považovať za abstraktnú verziu bežnej (konkrétnej) triedy, zatiaľ čo Inheritance umožňuje novým triedam rozširovať ďalšie triedy. Abstraktná trieda je trieda, ktorú nemožno inicializovať, ale je možné ju rozšíriť. Abstraktné triedy teda majú zmysel, iba ak programovací jazyk podporuje dedenie. V Jave sú triedy Abstract deklarované pomocou kľúčového slova Abstract, zatiaľ čo kľúčové slovo Extends sa používa na dedenie z (super) triedy.

Čo je to abstraktná trieda?

Zvyčajne nie je možné vytvárať inštancie abstraktných tried, známych tiež ako abstraktné základné triedy (ABC) (nemožno vytvoriť inštanciu tejto triedy). Abstraktné triedy teda majú zmysel, iba ak programovací jazyk podporuje dedenie (schopnosť vytvárať podtriedy z rozšírenia triedy). Abstraktné triedy zvyčajne predstavujú abstraktný koncept alebo entitu s čiastočnou alebo žiadnou implementáciou. Preto abstraktné triedy fungujú ako nadradené triedy, od ktorých sa odvodzujú podradené triedy, takže podradená trieda bude zdieľať neúplné vlastnosti nadradenej triedy a na ich dokončenie je možné pridať funkčnosť.

Abstraktné triedy môžu obsahovať abstraktné metódy. Podtriedy rozširujúce abstraktnú triedu môžu implementovať tieto (zdedené) abstraktné metódy. Ak podradená trieda implementuje všetky také abstraktné metódy, je to konkrétna trieda. Ak to však nie je možné, z detskej triedy sa stane aj abstraktná trieda. Čo to znamená, je to, že keď programátor nominuje triedu ako abstrakt, hovorí, že trieda bude neúplná a bude obsahovať prvky, ktoré je potrebné doplniť dediacimi podtriedami. Toto je pekný spôsob vytvorenia zmluvy medzi dvoma programátormi, čo zjednodušuje úlohy pri vývoji softvéru. Programátorka, ktorá píše kód na zdedenie, musí presne dodržiavať definície metódy (samozrejme môže mať vlastnú implementáciu).

Čo je to dedičstvo?

Dedenie je objektovo orientovaný koncept, ktorý umožňuje novým triedam rozširovať ďalšie triedy. Kľúčové slovo Extends sa používa na implementáciu konceptu dedenia v programovacom jazyku Java. Dedičstvo v podstate poskytuje opätovné použitie kódu umožnením rozšírenia vlastností a správania existujúcej triedy o novo definovanú triedu. Keď nová podtrieda (alebo odvodená trieda) rozšíri nadtriedu (alebo nadradenú triedu), táto podtrieda zdedí všetky atribúty a metódy nadradenej triedy. Podtrieda môže voliteľne prepísať správanie (poskytnúť metódam nové alebo rozšírené funkcie) zdedené z nadradenej triedy. Podtrieda zvyčajne nemôže rozšíriť viac super tried (napr. V Jave). Preto nemôžete použiť prírastky na viacnásobné dedičstvo. Ak chcete mať viacnásobné dedičstvo, musíte použiť rozhrania.

Aký je rozdiel medzi abstraktnou triedou a dedičstvom?

Abstraktné triedy zvyčajne predstavujú abstraktný koncept alebo entitu s čiastočnou alebo žiadnou implementáciou. Dedenie umožňuje novým triedam rozšíriť ďalšie triedy. Pretože triedy Abstrakt nie je možné vytvoriť inštanciou, musíte na využitie tried Abstrakt použiť koncept dedičnosti. Inak nemá abstraktná trieda využitie. Abstraktné triedy môžu obsahovať abstraktné metódy a po rozšírení triedy sa zdedia všetky metódy (abstraktné aj konkrétne). Zdedená trieda môže implementovať ktorúkoľvek alebo všetky metódy. Pokiaľ nie sú implementované všetky abstraktné metódy, potom sa z tejto triedy stane aj abstraktná trieda. Trieda nemôže dediť z viac ako jednej abstraktnej triedy (nejde o kvalitu abstraktných tried ako takú, ale o obmedzenie dedenia).

Odporúčaná: