Abstraktná trieda vs betónová trieda
Väčšina populárnych moderných objektovo orientovaných programovacích jazykov ako Java a C # je založená na triedach. Prostredníctvom tried dosahujú objektovo orientované koncepty, ako je zapuzdrenie, dedičnosť a polymorfizmus. Triedy sú abstraktným znázornením objektov skutočného sveta. Triedy môžu byť konkrétne alebo abstraktné v závislosti od úrovne implementácie ich funkčných metód. Konkrétna trieda 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. Konkrétne sa konkrétne triedy označujú ako (iba) triedy.
Čo je trieda betónu?
Predvolená trieda je konkrétna trieda. Kľúčové slovo class sa používa na definovanie tried (napr. V jazyku Java). Zvyčajne sa označujú ako triedy (bez prídavného mena). Konkrétne triedy znázorňujú konceptuálnu reprezentáciu objektov skutočného sveta. Triedy majú vlastnosti nazývané atribúty. Atribúty sú implementované ako globálne a inštančné premenné. Metódy v triedach predstavujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Typicky sa zapuzdrenie dosiahne privedením atribútov do súkromia, zatiaľ čo sa vytvoria verejné metódy, ktoré sa dajú použiť na prístup k týmto atribútom. Objekt je inštanciou triedy. Dedičnosť umožňuje používateľovi rozšíriť triedy (nazývané podtriedy) z iných tried (nazývaných super triedy). Polymorfizmus umožňuje programátorovi nahradiť objekt triedy namiesto objektu jeho nadtriedy. Zvyčajne sa podstatné mená nájdené v definícii problému stávajú priamo triedami v programe. A podobne sa slovesá stávajú metódami. Typické modifikátory prístupu používané pre triedy sú verejné, súkromné a chránené.
Čo je abstraktná trieda?
Abstraktné triedy sa deklarujú pomocou kľúčového slova Abstract (napr. V jazyku Java). Zvyčajne nie je možné vytvoriť inštancie tried abstraktov, známych tiež ako Abstraktné základné triedy (ABC) (inštanciu tejto triedy nemožno vytvoriť). Takže abstraktné triedy majú zmysel iba vtedy, ak programovací jazyk podporuje dedičnosť (schopnosť vytvárať podtriedy z rozširovania triedy). Abstraktné triedy obyčajne predstavujú abstraktný pojem alebo entitu s čiastočnou alebo žiadnou implementáciou. Preto abstraktné triedy fungujú ako rodičovské triedy, z ktorých sú odvodené podriadené triedy, takže podriadená trieda bude zdieľať neúplné vlastnosti nadradenej triedy a na ich doplnenie 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 podriadená trieda implementuje všetky takéto abstraktné metódy, stáva sa konkrétnou triedou. Ak to tak nie je, trieda pre deti sa tiež stáva triedou abstraktov. To všetko znamená, že keď programátor nominuje triedu ako abstrakt, hovorí, že trieda bude neúplná a bude obsahovať prvky, ktoré musia byť doplnené zdedenými podtriedami. Je to pekný spôsob, ako vytvoriť zmluvu medzi dvoma programátormi, ktorá zjednodušuje úlohy pri vývoji softvéru. Programátor, ktorý píše kód na zdedenie, musí presne dodržiavať definície metód (ale samozrejme môže mať vlastnú implementáciu).
Aký je rozdiel medzi triedou abstraktov a triedou betónu?
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é vytvoriť abstraktné triedy. Abstraktné triedy sa preto musia rozšíriť, aby boli užitočné. Abstraktné triedy môžu obsahovať abstraktné metódy, ale konkrétne triedy nie. Pri rozšírení abstraktnej triedy sa zdedia všetky metódy (abstraktné aj konkrétne). Zdedená trieda môže implementovať ktorúkoľvek alebo všetky metódy. Ak nie sú implementované všetky abstraktné metódy, táto trieda sa tiež stane abstraktnou triedou.