Elementi Java objektnog modela: apstraktna klasa, sučelje

Glavna ideja apstraktne klase je sljedeća teza: ponekad nema spremnih klasa, nego u "sirovom" obliku. Takvi se radni dijelovi ne mogu izravno koristiti (stvarati instance).

Što je apstraktna klasa Java

Razmotrimo još jedan primjer. Postoji Java apstraktna klasa u paketu Java.util. Ne primjenjuje se određeni kalendar koji se koristi, na primjer, u Zapadnoj i Istočnoj Europi, Kini, Sjevernoj Koreji, Tajlandu itd. No, ima mnogo korisnih značajki, kao što je dodavanje nekoliko dana na određeni datum: te su funkcije potrebne za bilo koje - bilo koju implementaciju kalendara. Ne možete generirati instancu iz apstraktne klase.


Apstraktne klase, apstraktne Java metode

Pretpostavimo da je potrebno razviti nekoliko grafičkih elemenata, na primjer, geometrijskih oblika: krug, pravokutnik, zvijezda, itd. slika. Svaka komponenta izgleda drugačije, tako da se odgovarajuća metoda (neka se zove boja) provodi na različite načine. Međutim, svaka komponenta ima mnoge zajedničke značajke: oblici moraju biti napisani u pravokutniku, mogu imati boju, biti vidljivi i nevidljivi, itd. To jest, morate stvoriti roditeljsku klasu za sve te brojke, gdje će svaka komponenta naslijediti zajednička svojstva.
Ali kako metoda boje? Naposljetku, roditeljska klasa nema vizualni prikaz. Ako metodu boje deklarirate u svakom razredu neovisno, bit će potrebno analizirati koja se komponenta obrađuje i zatim izvršititip koji donosi Stoga, metoda mora biti deklarirana kao apstraktna u roditeljskoj klasi: postavite naslov metode bez tijela. I tijelo svake izvedene klase će opisati svoje. U Javi apstraktna klasa može sadržavati apstraktne metode.


Ako u klasi postoje apstraktne metode, onda je klasa apstraktna. Prije klase riječi stavlja se i ključna riječ sažetka u naslovu metode. Nakon naslova ove metode trebate postaviti točku-zarez. U Javi apstraktna klasa ne može generirati instance. Ako želimo zabraniti njihovo stvaranje, čak i ako ne postoje apstraktne metode u klasi, onda se klasa može proglasiti apstraktnom. Ali ako postoji barem jedna apstraktna metoda u razredu, onda bi razred trebao biti apstraktan. Nemoguće je da je razred bio apstraktan i konačan, ai metoda. Metoda ne može biti apstraktna, privatna, statična, izvorna. Da bi se nasljednici razreda mogli proglasiti ne-apstraktnim i stvoriti njihove kopije, moraju provoditi sve apstraktne metode oca. Sam razred može koristiti svoje apstraktne metode. Primjer:
  • apstraktna klasa AClass {
  • javna apstraktna void metoda (int a);
  • }
  • Klasa BClass proširuje AClass {
  • javni void metodu (int a) {
  • //tijelo
  • }
  • ] Dopuštene su varijable tipa apstraktne klase. Oni se mogu odnositi na ne-apstraktnog učenika ove klase ili imaju null vrijednosti.

    Sučelja u Javi - alternativa višestrukim baštinama

    Java nema višestruko nasljeđivanje, jer postoje određeni problemi. Klasa ne može naslijediti iz nekoliko razreda. Ali on može implementirati nekoliko sučelja. Sučelja i apstraktne Java klase su slični koncepti,ali se ne podudaraju. Sučelje se može proglasiti javnim, onda je dostupno svima, ili ne možete navesti javni modifikator, a sučelje je dostupno samo unutar vašeg paketa. Ključna riječ sažetka nije potrebna jer je sučelje apstraktno pa se može specificirati.

    Deklaracija sučelja

    Počinje s zaglavljem i može biti praćeno javnom ključnom riječi, nakon čega slijedi riječ sučelje. Tada se mogu slijediti proširenja riječi i popis sučelja iz kojih se može naslijediti dano. Ovdje se ne smije ponavljati, a nemoguće je da odnos nasljeđivanja formira cikličku ovisnost. Zatim dolazi tijelo sučelja, zatvoreno u uvijene zagrade. U tijelu sučelja deklarirani su elementi: polja-konstante i apstraktne metode. Sva polja su statična konačna - nisu potrebni svi modifikatori. Sve metode smatraju se javnim sažetkom - također se mogu specificirati i ti modifikatori. Sada se dovoljno govori o apstraktnoj klasi iz Java sučelja.
  • Javno sučelje AI proširuje B, C, D {
  • //tijelo
  • }
  • Kako bi klasu proglasili nasljednikom sučelja, upotrijebite ključne alate: BI, CI, DI {}To jest, ako je u deklaraciji klase nakon implementacije naveden naziv sučelja, tada ga razred implementira. Nasljednici ove klase dobivaju svoje elemente, tako da i oni to shvaćaju. Dopuštene su i varijable tipa sučelja. Oni se mogu odnositi na tip klase koji implementira ovo sučelje, ili null. Ove varijable imaju sve elemente u klasi Object, jer su objekti generirani iz klasa, a oni su pak naslijeđeni od klaseObjekt. U ovom smo članku pregledali neke elemente Java objektnog modela - apstraktne klase, apstraktne metode i sučelja.

    Povezane publikacije