Čo je to Abstraktná trieda v Jave?

  • Abstraktné triedy sú ako akékoľvek iné bežné triedy v jave. Hlavným rozdielom medzi abstraktnou triedou a normálnou triedou je vytvorenie abstraktnej triedy, ktorú potrebujeme na použitie kľúčového slova „ABSTARCT“. Je to oddelenie implementácie triedy.
  • Používali na definovanie veľmi bežných čŕt jeho podtried. Takýto druh triedy sa označuje ako abstraktná trieda.
  • Najdôležitejšie je, že nemôžeme vytvoriť objekt abstraktnej triedy.
  • Abstraktné triedy môžu obsahovať abstraktné, ako aj ne abstraktné metódy. Nemôžu obsahovať telo abstraktnej metódy, ktorú môže poskytnúť iba podtrieda. Ak podtrieda neposkytuje implementáciu abstraktnej metódy, musíme ju explicitne uviesť.
  • Inými slovami, ak trieda obsahuje abstraktnú metódu, musí sa definovať ako ABSTARCT.
  • Použitím abstraktných tried dokážeme zoskupiť niekoľko tried java, optimalizuje kód a robí čitateľnejší kód a redukuje redundanciu. Poskytuje tiež šablónu pre budúce triedy.

Syntax abstraktnej triedy v Jave

Ako funguje Abstract Class v Jave?

  • Abstraktná trieda má abstraktnú metódu a nie abstraktnú metódu, tj abstraktnú metódu bez tela a môžu mať aj metódy s implementáciou.
  • Abstraktná trieda sa používa na poskytovanie najbežnejších znakov, ktoré sú špecifické pre rôzne triedy. Podtriedy môžu poskytovať odlišnú implementáciu týchto abstraktných metód podľa svojich potrieb alebo požiadaviek.
  • Pomocou „nového“ operátora nemôžeme vytvoriť objekt abstraktnej triedy, stále však môžeme definovať jeho konštruktor, ktorý je možné vyvolať iba v konštruktori jeho podtriedy. Konštruktor podtriedy má prístup k konštruktoru nadtriedy, aby inicializoval svoju premennú, ktorá by sa mohla použiť v podtriede pre ďalšie požiadavky.

Príklady abstraktnej triedy v Jave

Human.java

package com.cont.article;
public abstract class Human
(
public abstract void whatTheylike();
public void doTheysleep()
(
System. out .println("Yes every human require sleep.");
)
)

Human1.java

package com.cont.article;
public class Human1 extends Human
(
@Override
public void whatTheylike()
(
System. out .println("we like to have icecream.");
)
)

Human2.java

package com.cont.article;
public class Human2 extends Human
(
@Override
public void whatTheylike()
(
System. out .println("we like to have coffee.");
)
)

TestHuman.java

package com.cont.article;
public class TestHuman
(
public static void main(String() args)
(
Human human1 = new Human1();
human1.whatTheylike();
Human human2 = new Human2();
human2.whatTheylike();
human1.doTheysleep();
human2.doTheysleep();
)
)

Výkon:

Vo vyššie uvedenom príklade máme HUMAN ako abstraktnú triedu, ktorá definuje spoločné potreby, záľuby a nepáči človeka. Existujú rôzne typy ľudí s rôznymi záľubami a nepáči. Takže každý človek môže poskytnúť konkrétnu implementáciu toho, čo sa mu páči. Bude to pre nich špecifické.

Hlavnou výhodou abstraktnej triedy je to, že máme špecifickú implementáciu metód podľa požiadavky, ktorá tiež vedie k zníženiu redundancie, zvyšuje čitateľnosť kódu, skryje implementáciu metód, a teda poskytuje čiastočnú abstrakciu.

Môžeme mať ešte jeden príklad na pochopenie toho, kedy by sme mali používať triedy abstraktov.

  • Abstraktnú triedu by sme mali použiť, keď chceme zdieľať spoločnú funkčnosť medzi rôznymi triedami so špecifickou implementáciou.
  • V abstraktných triedach by polia nemali byť statické a konečné, môžeme mať aj konkrétne metódy definované ako súkromné, verejné a chránené.

Povedzme, že máme jednu triedu zvierat. Existujú odrody zvierat, ktoré máme na Zemi a všetky sa navzájom od seba v určitom alebo väčšom význame líšia. Bude obsahovať všetky spoločné vlastnosti všetkých.

Teraz táto trieda zvierat nemôže mať metódy, ktoré sú špecifické pre každé zviera. Koncepciou triedy Abstract teda môžeme túto funkciu implementovať bez redundantného kódu.

Všetky zvieratá majú iný typ zvuku, návyky atď. Napríklad pes, mačka, slon a občerstvenie majú iný zvuk. Preto môžeme mať v nadradenej triede všeobecnú metódu, prostredníctvom ktorej môžu všetky ostatné podtriedy alebo podriadené triedy zabezpečiť svoju vlastnú špecifickú implementáciu.

V rodičovskej triede, tj zviera, máme jednu všeobecnú abstraktnú metódu nazývanú ich zvuk (). Každá trieda detí musí túto metódu potlačiť a zabezpečiť si vlastnú implementáciu.

Abstraktná trieda a rozhranie?

  • Abstraktná trieda aj rozhranie sa používajú na dosiahnutie abstrakcie v jave. Abstraktná trieda poskytuje čiastočnú abstrakciu, zatiaľ čo rozhranie poskytuje 100% alebo úplnú abstrakciu.
  • V predvolenom nastavení sú premenné v rozhraní konečné. Abstraktná trieda však obsahuje aj finálnu premennú. Podobne abstraktná trieda môže mať aj statickú, nestatickú premennú. Rozhranie však bude obsahovať iba konečnú a statickú premennú.
  • Členské premenné abstraktnej triedy môžu byť ako súkromné, verejné, chránené, ale v prípade rozhrania sú predvolene verejné.
  • Abstraktná trieda môže rozšíriť ďalšiu triedu Java a implementovať viacero rozhraní, ale jedno rozhranie môže rozšíriť iba ďalšie rozhranie. Abstraktná trieda môže poskytnúť implementáciu rozhrania, ale rozhranie to nemôže urobiť.
  • Implementujeme a rozširujeme kľúčové slová na implementáciu a rozšírenie rozhrania a tried.
  • Metódou môžeme modifikovať alebo získať prístup k nestatickým a nekonečným premenným abstraktnej triedy.

záver

  • Abstraktná trieda použitá na zabezpečenie čiastočnej abstrakcie. Abstraktnú triedu nemožno vytvoriť pomocou nového kľúčového slova.
  • Abstraktná metóda nemá telo a vždy končí bodkočiarkou (;).
  • Abstraktná trieda obsahuje abstraktné a ne abstraktné metódy.
  • Podtrieda abstraktnej nadtriedy, musí zabezpečiť implementáciu všetkých abstraktných metód, ak to neposkytuje, potom sa musí deklarovať ako abstraktná trieda.
  • Podtrieda môže byť abstraktná, aj keď je nadtrieda betónová.
  • Trieda bez abstraktov nemôže obsahovať abstraktné metódy. Abstraktná metóda tiež nie je statická.
  • Preto môžeme povedať, že abstraktné triedy obsahujú aj abstraktné a konkrétne metódy, takže nemôžu zabezpečiť 100% abstrakciu. Je to proces skrytia komplexnej logiky pred koncovým používateľom a ukazuje im iba služby. Podtrieda môže byť abstraktná, aj keď jej nadtrieda je konkrétna a môže sa použiť aj ako typ údajov.
  • Abstraktná trieda môže mať statické polia a statické metódy. Tieto statické členy môžete použiť s referenciou na triedu.

Odporúčané články

Toto je príručka pre abstraktnú triedu v Jave. Tu diskutujeme syntax a príklady abstraktnej triedy v Jave spolu s abstraktnou triedou a rozhraním. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Rozhranie Java vs Abstraktná trieda
  2. BoxLayout v Jave
  3. Čo je to Java SE?
  4. Čo je dedičstvo Java?
  5. Ako funguje Abstract Class v PHP?
  6. Abstraktná trieda v C ++
  7. Sprievodca statickou metódou v PHP
  8. Kompletný prehľad statickej metódy JavaScript

Kategórie: