Prvky objektu Java objektu: abstraktná trieda, rozhranie

Hlavnou myšlienkou abstraktné triedy je nasledovné tézy: niekedy požadovanej triedy nie sú pripravení, ale v "surovej" forme. Takéto obrobky nemožno priamo použiť (vytvoriť inštancie).

Čo je Java abstraktné trieda

Zoberme si iný príklad. V balíku Java.util je abstraktná trieda Java. Minul konkrétny kalendár používa, napríklad v západnej a východnej Európe, Číne, Severnej Kórei, Thajsku a tak ďalej. D. Ale to má mnoho užitočných funkcií, ako je napríklad pridanie niekoľkými dňami k určitému dátumu, sú nutné tieto funkcie pre všetkých - akékoľvek zavedenie kalendára. Nemôžete vygenerovať inštanciu z abstraktnej triedy.


abstraktné triedy abstraktné metódy Java

Predpokladajme, že je potrebné vyvinúť niektoré grafické prvky, ako sú napríklad geometrické tvary :. Kružnica, obdĺžnik, hviezdy a tak ďalej D. A tam je kontajner, ktorý by obrázkov. Každá podoba zložka je odlišná, pretože je implementovaná vhodná metóda (aj keď to je volané farby) inak. Avšak, každá zložka je veľa spoločného: údaje musia byť vpísaná do obdĺžnika môže mať farbu, viditeľné i neviditeľné, a tak ďalej E. To chcete vytvoriť nadradenej triedy pre všetky z týchto častí, pričom každá komponenta nasledujú všeobecné vlastnosti ..
Ale ako spôsob farby? Koncová materská trieda nemá vizuálnu reprezentáciu. Ak deklarovať metódu farbou v každej triede nezávisle, budú musieť analyzovať, ktorá komponenta je spracovaný a vykonajteprináša typ Preto musí byť metóda deklarovaná abstraktne v materskej triede: nastaviť názov metódy bez tela. A telo každej triedy derivátov bude opisovať svoje vlastné. V jazyku Java môže abstraktná trieda obsahovať abstraktné metódy.


Ak sú v triede abstraktné metódy, potom je trieda abstraktná. Pred triedou slov je umiestnené aj abstraktné kľúčové slovo v názve metódy. Po názve tejto metódy musíte nastaviť bodkočiarku. V jazyku Java abstraktná trieda nemôže generovať inštancie. Ak chceme zakázať ich tvorbu, aj keď v triede neexistujú žiadne abstraktné metódy, potom trieda môže byť vyhlásená za abstraktnú. Ale ak je v triede aspoň jedna abstraktná metóda, potom by mala byť trieda abstraktná. Je nemožné, aby bola trieda abstraktná a konečná, ako aj metóda. Metóda nemôže byť abstraktná, súkromná, statická, domorodá. K triednym dedičom možno vyhlásiť, že nie sú abstraktné a vytvárajú ich kópie, musia realizovať všetky abstraktné metódy otca. Samotná trieda môže využívať svoje abstraktné metódy. Príklad:
  • abstraktná trieda AClass {
  • verejná abstraktná neplatná metóda (int a);
  • trieda BClass rozširuje AClass {
  • verejne neplatná metóda (int a) {
  • ] Premenné typu abstraktnej triedy sú povolené. Môžu sa odvolávať na neabstraktný žiak tejto triedy alebo majú nulové hodnoty.

    Rozhrania v jazyku Java - alternatíva k viacnásobným dedičstvám

    Java nemá viacnásobné dedičstvo, pretože tam sú určité problémy. Trieda nemôže zdediť z niekoľkých tried. Môže však implementovať niekoľko rozhraní. Rozhrania a abstraktné Java kurzy sú podobné pojmy,ale nezodpovedajú. Rozhranie môže byť deklarovaný ako public, potom je k dispozícii všetkým, alebo môžete vynechať modifikátor verejnosť, potom rozhranie je k dispozícii len v rámci svojho balíčka. Abstraktné kľúčové slovo sa nevyžaduje, pretože rozhranie je abstraktné, takže ho možno špecifikovať.

    Vyhlásenie o rozhraní

    Začína sa záhlavím a najskôr môže nasledovať kľúčové slovo pre verejnosť, po ktorom nasleduje slovo. Potom sa môžu dodržiavať rozšírenia o slovo a zoznam rozhraní, z ktorých daný môže nadobudnúť dedičstvo. Nie je tu dovolené opakovať sa a je nemožné, aby vzťah dedičnosti vytvoril cyklickú závislosť. Potom príde telo rozhrania, uzavreté v kučeravých zátvorkách. V prvku rozhrania sú deklarované prvky: konštanty polí a abstraktné metódy. Všetky polia sú verejné statické finále - všetky tieto modifikátory sa nevyžadujú. Všetky metódy sa považujú za verejné abstraktné - tieto modifikátory možno tiež špecifikovať. Teraz sa dosť hovorí o abstraktnej triede z Java rozhrania.
  • verejné rozhranie AI rozširuje b, c, d {
  • //tela
  • }
  • Pre deklarovanie triedy následníkov rozhraní musia použiť kľúčové slovo prostriedky:
  • triedy AClass náradie BI, CI, DI {}
  • To znamená, že ak je vo vyhlásení o triede po implementácii zadané meno rozhrania, potom trieda implementuje. Dedičia tejto triedy dostanú svoje prvky, takže si to tiež uvedomujú. Premenné typu rozhrania sú tiež povolené. Môžu sa vzťahovať na typ triedy, ktorý implementuje toto rozhranie, alebo null. Tieto premenné majú všetky prvky v triede objektov, pretože objekty sú generované z tried a tie z nich sú zase zdedené z triedyObject. V tomto článku sme preskúmali niektoré prvky modelu objektov Java - abstraktné triedy, abstraktné metódy a rozhrania.

    Súvisiace publikácie