![Rozdiel medzi abstraktnou triedou a rozhraním - Vzdelanie Rozdiel medzi abstraktnou triedou a rozhraním - Vzdelanie](https://a.you7behappy.com/education/difference-between-abstract-class-and-interface.jpg)
Obsah
Hlavný rozdiel
Hlavný rozdiel medzi abstraktnou triedou a rozhraním spočíva v tom, že postupy rozhrania Java sú v podstate abstraktné a nemôžu mať aplikácie. Takže všeobecne povedané, rozhranie je vlastne zmluva a keď hovoríme o rozhraní, platí, že metódy nemajú telo, je to iba vzor. Kým abstraktné triedy sú v podstate triedy, ktoré sa používajú draho. Abstraktné triedy a rozhranie je úplne iný koncept, sú to dve rôzne veci, ale niekedy je ich implementácia dosť podobná.
Čo je to abstraktná trieda?
Programátor neimplikuje celkom abstraktnú triedu. Abstraktná trieda môže mať jednu alebo viac abstraktných metód. Sú užitočné pre modelovanie tried alebo zoskupení tried a zatiaľ čo sa to deje, programátor získa predstavu o tom, čo sa musí vytvoriť, keď uvidia požiadavky. Na abstraktnú triedu sa nemožno spoľahnúť úplne, pretože jej chýbajú niektoré časti. Hlavným bodom tohto argumentu je, že abstraktná trieda je striktne objektovo orientovaná, hoci má nadpis metódy, ale nemá telo. Keď hovoríme o abstraktných triedach, existuje silné spojenie medzi dvoma triedami, pretože tieto triedy majú tendenciu vzájomne sa získavať alebo dediť.
Čo je rozhranie?
Keď hovoríme o rozhraní, potom naopak nie je vzťah alebo komunikácia medzi samotným rozhraním a triedou implikujúcou rozhranie taký silný ako v abstraktných triedach. Trieda Java môže implementovať veľa rozhraní, ale môže zdediť jednu abstraktnú triedu. To znamená, že keď chcete naznačiť veľa interakcií naraz, potom je rozhranie vašou vecou. Okrem tohto celého scenára, aj keď nechcete, aby sa API chvíľu zmenilo, potom je pre vás najlepšia voľba rozhrania. Rozhranie je vlastne zmluva medzi dvoma rôznymi objektmi. Aby som to skrátil, rozhranie sa točí okolo funkčnosti.
Kľúčové rozdiely
- Abstraktná trieda je objektovo orientovaná, zatiaľ čo rozhranie je funkčne orientované.
- Ak chcete, aby API chvíľu zostalo konštantné, vyberte rozhranie nad abstraktnou triedou.
- Viacnásobné dedičstvá by sa mohli získať zavedením viacerých rozhraní. V abstraktnej triede nemôžete získať viac dedičstiev.
- Ak máte vibráciu, ktorú by ste v budúcnosti mali potrebovať pri pridávaní metód, potom sa zvolí abstraktná trieda, nie rozhranie.
- Abstraktná trieda poskytuje spoločnú aplikáciu základnej triedy, ale nič podobné sa nedeje v rozhraní.
- V rozhraní sú všetky metódy, ktoré implementujete, verejné, ale v abstraktnej triede môžete použiť aj niektoré neverejné metódy.
- Konštruktori nie sú v rozhraní, ale vyskytujú sa v abstraktnej triede.
- Úplný člen abstraktnej triedy by mohol byť statický, ale nie rozhranie.