Rozdiel medzi abstraktnou triedou a konkrétnou triedou

Rozdiel medzi abstraktnou triedou a konkrétnou triedou
Rozdiel medzi abstraktnou triedou a konkrétnou triedou

Video: Rozdiel medzi abstraktnou triedou a konkrétnou triedou

Video: Rozdiel medzi abstraktnou triedou a konkrétnou triedou
Video: NAT Explained - Network Address Translation 2024, November
Anonim

Abstraktná trieda verzus konkrétna trieda

Väčšina populárnych moderných objektovo orientovaných programovacích jazykov ako Java a C je založená na triedach. Pomocou tried dosahujú objektovo orientované koncepty, ako je zapuzdrenie, dedičnosť a polymorfizmus. Triedy sú abstraktnou reprezentáciou objektov reálneho sveta. Triedy môžu byť konkrétne alebo abstraktné v závislosti od úrovne implementácie funkcií ich metód. Konkrétna trieda úplne implementuje všetky svoje metódy. Abstraktnú triedu možno považovať za obmedzenú verziu bežnej (konkrétnej) triedy, kde môže obsahovať čiastočne implementované metódy. Typicky sa konkrétne triedy označujú ako (len) triedy.

Čo je trieda betónu?

Predvolená trieda je konkrétna trieda. Kľúčové slovo class sa používa na definovanie tried (napr. v Jave). A zvyčajne sa jednoducho označujú ako triedy (bez prídavného mena konkrétne). Konkrétne triedy zobrazujú koncepčnú reprezentáciu objektov reálneho sveta. Triedy majú vlastnosti nazývané atribúty. Atribúty sú implementované ako globálne a inštancie premenné. Metódy v triedach reprezentujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Zapuzdrenie sa zvyčajne dosiahne tak, že sa atribúty stanú súkromnými, pričom sa vytvoria verejné metódy, ktoré možno použiť na prístup k týmto atribútom. Objekt je inštanciou triedy. Dedičnosť umožňuje používateľovi rozširovať triedy (nazývané podtriedy) z iných tried (nazývaných supertriedy). Polymorfizmus umožňuje programátorovi nahradiť objekt triedy namiesto objektu svojej nadtriedy. Zvyčajne sa podstatné mená nachádzajúce sa v definícii problému priamo stanú triedami v programe. A podobne aj slovesá sa stávajú metódami. Verejné, súkromné a chránené sú typické modifikátory prístupu používané pre triedy.

Čo je abstraktná trieda?

Abstraktné triedy sú deklarované pomocou kľúčového slova Abstract (napr. v jazyku Java,). Abstraktné triedy, tiež známe ako abstraktné základné triedy (ABC), zvyčajne nemožno vytvoriť inštanciu (inštanciu tejto triedy nemožno vytvoriť). Takže abstraktné triedy majú zmysel len vtedy, ak programovací jazyk podporuje dedičnosť (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, z ktorých sú odvodené podradené triedy, takže podriadená trieda bude zdieľať neúplné vlastnosti nadradenej triedy a na ich dokončenie je možné pridať funkcie.

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éto abstraktné metódy, stáva sa konkrétnou triedou. Ale ak nie, trieda dieťaťa sa tiež stane abstraktnou triedou. To všetko znamená, že keď programátor nominuje triedu ako abstrakt, hovorí, že trieda bude neúplná a bude mať prvky, ktoré bude potrebné doplniť dediacimi podtriedami. Je to pekný spôsob, ako vytvoriť zmluvu medzi dvoma programátormi, čo zjednodušuje úlohy pri vývoji softvéru. Programátor, ktorý píše kód na dedenie, musí presne dodržiavať definície metód (ale samozrejme môže mať vlastnú implementáciu).

Aký je rozdiel medzi abstraktnou triedou a konkrétnou triedou?

Abstraktné triedy majú zvyčajne čiastočnú alebo žiadnu implementáciu. Na druhej strane, konkrétne triedy majú vždy plnú implementáciu svojho správania. Na rozdiel od konkrétnych tried nie je možné vytvárať inštancie abstraktných tried. Preto sa abstraktné triedy musia rozšíriť, aby boli užitočné. Abstraktné triedy môžu obsahovať abstraktné metódy, ale konkrétne triedy nie. Keď sa abstraktná trieda rozšíri, všetky metódy (abstraktné aj konkrétne) sa zdedia. Zdedená trieda môže implementovať ktorúkoľvek alebo všetky metódy. Ak nie sú implementované všetky abstraktné metódy, potom sa aj táto trieda stane abstraktnou triedou.

Odporúča: