Elementi objektnega modela Java: abstraktni razred, vmesnik

Glavna ideja abstraktnega razreda je naslednja teza: včasih ni pripravljenih razredov, ampak v "surovi" obliki. Takih obdelovancev ni mogoče neposredno uporabljati (ustvarjanje primerkov).

Kaj je abstraktni razred Java

Poglejmo drug primer. V paketu Java.util je abstraktni razred Java. Ne izvaja posebnega koledarja, ki se uporablja na primer v zahodni in vzhodni Evropi, na Kitajskem, v Severni Koreji, na Tajskem itd. Vendar pa ima veliko uporabnih funkcij, kot je dodajanje več dni na določen datum: te funkcije so potrebne za vse - kakršno koli izvajanje koledarja. Primera ne morete generirati iz abstraktnega razreda.


Abstraktni razredi, abstraktne Java metode

Recimo, da je potrebno razviti več grafičnih elementov, na primer geometrijskih oblik: krog, pravokotnik, zvezda itd. risbe Vsaka komponenta izgleda drugače, zato se ustrezna metoda (naj se imenuje barva) izvaja na različne načine. Vendar pa ima vsaka komponenta veliko skupnih lastnosti: oblike morajo biti napisane v pravokotniku, lahko imajo barvo, biti vidne in nevidne itd.
Toda kako se uporablja metoda barve? Konec koncev, nadrejeni razred nima vizualne predstavitve. Če barvno metodo v vsakem razredu razglasite samostojno, boste morali analizirati, katera komponenta se obdeluje in nato izvršitiprinaša tip Zato mora biti metoda v nadrejenem razredu razglašena za abstraktno: nastavite naslov metode brez telesa. Telo vsakega izvedenega razreda bo opisalo svoje. V Javi abstraktni razred lahko vsebuje abstraktne metode.


Če v razredu obstajajo abstraktne metode, je razred abstrakten. Pred besednim razredom je postavljena abstraktna ključna beseda tudi v naslovu metode. Po naslovu te metode morate določiti podpičje. V Javi abstraktni razred ne more ustvariti primerkov. Če želimo prepovedati njihovo ustvarjanje, tudi če v razredu ni abstraktnih metod, lahko razred razglasimo abstraktno. Če pa je v razredu vsaj ena abstraktna metoda, potem mora biti razred abstrakten. Nemogoče je, da je bil razred hkrati abstrakten in dokončen, pa tudi metoda. Metoda ne more biti abstraktna, zasebna, statična, native. Da bi bili dediči razredov lahko razglašeni kot abstraktni in ustvarjali njihove kopije, morajo izvajati vse abstraktne metode očeta. Sam razred lahko uporabi svoje abstraktne metode. Primer:
  • abstraktni razred AClass {
  • javna abstraktna void metoda (int a);
  • }
  • Razred BClass razširja AClass {
  • javno void metodo (int a) {
  • //telo
  • }
  • ] Dovoljene so spremenljivke tipa abstraktni razred. Lahko se nanašajo na ne-abstraktnega učenca tega razreda ali imajo ničelne vrednosti.

    Vmesniki v Javi - alternativa večkratni dediščini

    Java nima več dedovanja, ker potem obstajajo določeni problemi. Razred ne more podedovati iz več razredov. Ampak on lahko izvaja več vmesnikov. Vmesniki in abstraktni razredi Java so podobni koncepti,vendar se ne ujemajo. Vmesnik je lahko deklariran kot javni, potem je na voljo vsem ali pa ne morete določiti javnega modifikatorja, nato pa je vmesnik na voljo samo znotraj vašega paketa. Ključna beseda abstrakta ni potrebna, ker je vmesnik abstrakten, zato ga lahko podate.

    Deklaracija vmesnika

    Začne se z glavo in ji lahko najprej sledi javna ključna beseda, ki ji sledi besedni vmesnik. Nato lahko sledite besednim končnicam in seznamu vmesnikov, iz katerih lahko podedujete. Tukaj ni dovoljeno ponoviti in nemogoče je, da bi odnos dedovanja tvoril ciklično odvisnost. Potem pride telo vmesnika, zaprto v zavite oklepaje. V telesu vmesnika so deklarirani elementi: polja-konstante in abstraktne metode. Vsa polja so javna statična končnica - vsi ti modifikatorji niso potrebni. Vse metode se štejejo za javne abstraktne - te modifikatorje lahko tudi določite. Zdaj je dovolj reči o abstraktnem razredu iz vmesnika Java.
  • javni vmesnik AI razširja B, C, D {
  • //telo
  • }
  • Za razglasitev razreda kot naslednika vmesnika uporabite ključna orodja: BI, CI, DI {}To pomeni, da če je v razredni deklaraciji po izvedenem vnosu podano ime vmesnika, ga razred izvaja. Dediči tega razreda dobijo svoje elemente, zato ga tudi uresničujejo. Spremenljivke vrste vmesnika so prav tako dovoljene. Lahko se nanašajo na tip razreda, ki izvaja ta vmesnik, ali null. Te spremenljivke imajo vse elemente v razredu Object, ker so objekti generirani iz razredov, in tisti, ki so nato podedovani od razredaObjekt V tem članku smo pregledali nekatere elemente objektnega modela Java - abstraktne razrede, abstraktne metode in vmesnike.

    Sorodne publikacije