/ / Java-objektimallin elementit: Abstrakti luokka, käyttöliittymä

Java-objektimallielementit: Abstrakti luokka, käyttöliittymä

Abstraktin luokan pääidea sisältyy seuraavaan opinnäytetyöhön: joskus ei vaadita valmiita luokkia, vaan "raakana". Tällaisia ​​esiasetuksia ei voida käyttää suoraan (instantioida).

java abstrakti luokka

Mikä on abstrakti luokka Java

Katsotaanpa toista esimerkkiä.Java.util-paketissa on abstrakti luokan kalenteri Java-muodossa. Se ei ota käyttöön tiettyä kalenteria, jota käytetään esimerkiksi Länsi- ja Itä-Euroopassa, Kiinassa, Pohjois-Koreassa, Thaimaassa jne. Mutta sillä on monia hyödyllisiä toimintoja, esimerkiksi lisäämällä useita päiviä tiettyyn päivämäärään: näitä toimintoja tarvitaan kaikkiin kalenterin toteutus. Et voi synnyttää ilmentymää abstraktista luokasta.

Abstraktit luokat, abstraktit Java-menetelmät

Oletetaan, että sinun on kehitettävä useita grafiikoitaelementit, esimerkiksi geometriset muodot: ympyrä, suorakulmio, tähti jne. Ja niitä piirtää säiliö. Jokaisella komponentilla on erilainen ulkonäkö, joten vastaava menetelmä (kutsutaan sitä maaliksi) toteutetaan eri tavalla. Jokaisella komponentilla on kuitenkin monia yhteisiä asioita: muodot on merkittävä suorakulmioon, niillä voi olla väri, olla näkyviä ja näkymättömiä jne. Toisin sanoen sinun on luotava kaikkien näiden muotojen pääluokka, jossa kukin komponentti perii yhteiset ominaisuudet.

abstraktit luokat abstraktit java-menetelmät
Mutta entä maalimenetelmä?Vanhemmalla luokassa ei ole visuaalista esitystä. Jos ilmoitat maalimenetelmän kussakin luokassa itsenäisesti, sinun on analysoitava käsiteltävä komponentti ja suoritettava sitten tyyppimuunnos. Siksi menetelmä on julistettava abstraktiksi yläluokassa: aseta metodin otsikko ilman runkoa. Ja jokainen johdettu luokka kuvaa kehonsa. Java-tilassa abstrakti luokka voi kietoa abstrakteja menetelmiä.

Jos luokassa on abstrakteja menetelmiä, niinluokka on abstrakti. Avainsana abstrakti sijoitetaan luokan sanan eteen ja myös metodin otsikkoon. Tämän menetelmän otsikon jälkeen on sijoitettava puolipiste. Javassa abstrakti luokka ei voi luoda esiintymiä. Jos haluamme kieltää niiden luomisen, vaikka luokassa ei ole abstrakteja menetelmiä, luokka voidaan julistaa abstraktiksi. Mutta jos luokassa on ainakin yksi abstrakti menetelmä, luokan on oltava abstrakti. Luokan on mahdotonta olla abstrakti, lopullinen ja myös menetelmä. Menetelmä ei voi olla abstrakti, yksityinen, staattinen, natiivi. Perittyjen luokkien julistamiseksi ei-abstrakteiksi ja instantioiduiksi heidän on toteutettava kaikki vanhemman abstraktit menetelmät. Luokka itse voi käyttää abstrakteja menetelmiä.

esimerkiksi:

  • abstrakti luokka AClass {
  • julkinen abstrakti mitätöintimenetelmä (int a);
  • }
  • luokka BClass laajentaa AClassia {
  • public void -menetelmä (int a) {
  • // runko
  • }

Abstraktiluokan muuttujat ovat sallittuja. Ne voivat viitata tämän luokan ei-abstraktiin jälkeläiseen tai olla nolla.

Java-rajapinnat - vaihtoehto usealle perinnölle

java-rajapinnat ja abstraktit luokat

Java-sovelluksessa ei ole useita perintöominaisuuksia, koska silloin syntyy tiettyjä ongelmia. Luokka ei voi periä useista luokista. Mutta se voi toteuttaa useita rajapintoja.

Java-rajapinnat ja abstraktit luokat - käsitteetsamanlainen, mutta ei sama. Käyttöliittymä voidaan julistaa julkiseksi, sen jälkeen se on kaikkien saatavilla, tai voit jättää julkisen muokkaajan pois, jolloin käyttöliittymä on käytettävissä vain sen paketissa. Abstraktia avainsanaa ei vaadita, koska käyttöliittymä on jo abstrakti, mutta voit määrittää sen.

Liitäntäilmoitus

abstraktin luokan ero Java-käyttöliittymästä

Se alkaa otsikolla ja voi mennä ensinjulkinen avainsana, jota seuraa käyttöliittymän sana. Sitten sana ulottuu ja voi tulla luettelo rajapinnoista, joista annettu periytyy. Toistoja ei sallita tässä, eikä myöskään ole mahdollista, että perintösuhde muodostaa kiertosuhteen. Sitten tulee käyttöliittymän runko, joka on suljettu kiharoihin. Elementit ilmoitetaan käyttöliittymän rungossa: vakiokentät ja abstraktit menetelmät. Kaikki kentät ovat julkisia lopullisia staattisia - kaikki nämä muokkaajat ovat valinnaisia. Kaikkia menetelmiä pidetään julkisina abstrakteina - nämä muokkaajat voidaan myös määrittää. Abstraktin luokan ja Java-käyttöliittymän välisestä erosta on sanottu tarpeeksi.

  • julkinen rajapinta AI ulottuu B, C, D {
  • // runko
  • }

Voit julistaa luokan perinnöksi käyttöliittymästä käyttämällä implements-avainsanaa:

  • luokan AClass toteuttaa BI, CI, DI {}

Toisin sanoen, jos käyttöliittymän nimi määritetään sen jälkeen, kun luokan deklaraatiossa on toteutettu, niin luokka toteuttaa sen. Tämän luokan perilliset perivät sen elementit, joten he myös toteuttavat sen.

Liitäntämuuttujat ovat myös sallittuja.Ne voivat viitata luokan, joka toteuttaa tämän käyttöliittymän, tyyppiin tai nollaan. Tällaisissa muuttujissa on kaikki Object-luokan elementit, koska objektit ovat peräisin luokista ja ne puolestaan ​​periytyvät Object-luokasta.

Tässä artikkelissa tarkastelimme joitain Java-objektimallin elementtejä - abstrakteja luokkia, abstrakteja menetelmiä, rajapintoja.