Verkkosovellukset

Käyttöliittymä vs abstrakti luokka Javassa: Mikä ero on?

30. lokakuuta 2021

Java on yksi johtavista ja yleisesti käytetyistä ohjelmointikielistä ympäri maailmaa. Se on olio-ohjelmointi kieli, jota voidaan käyttää millä tahansa alustalla. Java-ohjelmointikieli perustuu periaatteeseen WORA. WORA tarkoittaa Write Once, Run Anywhere. Toisin sanoen Java-kieli suorittaa käännetyn koodinsa missä tahansa mistä tahansa alustasta kääntämättä sitä uudelleen. Abstrakti luokka ja käyttöliittymä Javassa ovat kaksi merkittävää luokkaa.

Sisällysluettelo

Mikä on Java?

Java on tehokas ohjelmointikieli, joka varmistaa turvallisen ohjelmoinnin. The Sun Microsystem on Java-kielen kehittäjä. Se toimii sekä alustana että ohjelmointikielenä. Kehittäjät voivat käyttää Java-ohjelmointikieltä mobiilisovellusten, työpöytäohjelmistosovellusten, sulautettujen järjestelmien jne. kehittämiseen.

Java-kielen käytön merkittävä etu on se, että se on alustariippumaton. Kehittäjät voivat kirjoittaa ja kääntää Java-koodin yhdessä käyttöjärjestelmä tai alusta ja suorita tai suorita sama käännetty koodi toisessa käyttöjärjestelmässä tai alustassa. A Java-virtuaalikone (JVM) on vastuussa käännetyn Java-koodin suorittamisesta. Jos haluat suorittaa minkä tahansa koodin Java Virtual Machinessa (JVM), koodi on muunnettava muotoon Java-tavukoodi , kuten JVM hyväksyy Java-tavukoodilla.

Kielen peruselementit Javassa

Java-ohjelmointikieli on olio-ohjelmointikieli. Siksi kaikki Java-koodit sisältävät objektien yhdistelmän. Näitä objekteja käytetään kutsumaan tai kutsumaan mitä tahansa koodin sisällä olevaa toimintoa. Java-ohjelmointikieli sisältää yleensä seuraavat elementit koodissaan:

    Luokka:

TO luokkaa Java-ohjelmointikielessä on kokoelma menetelmiä ja datamuuttujia. Lisäksi objektit luodaan luokassa

    Esine:

An esine Java-kielellä edustaa tietyn asian tilaa, käyttäytymistä ja identiteettiä. Kun ilmoitat objektin luokassa, sitä käytetään suorittamaan saman luokan menetelmiä.

    Menetelmät:

menetelmät kutsutaan funktioiksi, jotka suorittavat koodilohkon tiettyä tarkoitusta varten. Menetelmiä kutsutaan minkä tahansa objekteja käyttävän ohjelman päätoiminnossa.

    Instanssimuuttujat:

Instanssimuuttujat ovat yksilöllisiä muuttujia, jotka on määritetty kullekin objektityypille.

Alla on Java-ohjelman syntaksi.

|_+_|

Olemme nähneet luokan ilmoituksen ja kuinka sitä kutsutaan sen objektin pääfunktiossa. Javassa on erilaisia ​​luokkia, esim POJO luokka , staattinen luokka, abstrakti luokka, betoniluokka , loppuluokka ja sisäluokka. Tässä artikkelissa opimme kuitenkin vain abstraktin luokan. Olemme keskustelleet Javan perusteista. Sukeltakaamme nyt ydinaiheeseemme, Abstract Class ja Interface in Java.

Mikä on abstrakti luokka?

Luokka, joka on ilmoitettu käyttämällä avainsanana 'abstraktia', kutsutaan abstraktiksi luokaksi. Ennen kuin sukeltaamme abstraktin luokan yksityiskohtiin, meidän on ensin tiedettävä, mitä abstraktio tarkalleen ottaen tarkoittaa.

Katso myös 10 parasta vakoilupuhelinsovellusta Androidille ja iPhonelle

Abstraktio

sana ' abstraktio ' tarkoittaa, että toteutusmenetelmiä ei saa paljastaa tai piilottaa, ja vain toiminnallisuus näytetään. Tällaisessa tilanteessa käyttäjä tuntee vain tarpeelliset ja olennaiset asiat. Käyttäjän ei tarvitse tietää muita sisäisiä ominaisuuksia. Abstraktio voidaan saavuttaa käyttämällä kahta Java-elementtiä – abstraktia luokkaa ja käyttöliittymää.

Esimerkiksi henkilö lähettää a tekstiviesti toiselle henkilölle. Lähettäjä kirjoittaa viestin ja lähettää sen. Hän ei kuitenkaan ole tietoinen prosessista, jolla viesti välitetään toiselle henkilölle. Lähettäjä tietää viestin, ei viestintätapaa. Tämä on paras esimerkki abstraktiosta.

Yllä olevasta esimerkistä olet ehkä ymmärtänyt abstraktion käsitteen. Siirrymme nyt kohti abstraktia luokkaa. Käyttämällä avainsanaa 'abstrakti' voimme luoda abstraktin luokan.

Syntaksi:

|_+_|

Abstraktiluokka sisältää menetelmiä, jotka voivat olla joko abstrakteja tai ei-abstrakteja.

Mikä on abstrakti menetelmä?

Abstrakti menetelmä on funktio, jossa ei ole sen toteutusta. Se sisältää funktion tai menetelmän nimen, jota seuraa puolipiste.

Syntaksi:

|_+_|

Abstraktia luokkaa toteutettaessa on muistettava joitain tärkeitä kohtia.

  1. Sinun tulee aina ilmoittaa abstrakti avainsanalla 'abstrakti'.
  2. Voit sisällyttää abstraktiluokkaasi sekä abstrakteja menetelmiä että perinteisiä menetelmiä.
  3. Merkittävin asia on muistaa, että abstraktia luokkaa ei voi ilmentää. Toisin sanoen et voi luoda mitään objektia abstraktissa luokassa.
  4. Voit ottaa mukaan konstruktoreita ja staattisia menetelmiä abstraktiluokkaasi.
  5. Tavallisissa tai perinteisissä luokissa ei voi olla abstrakteja menetelmiä. Se tukee vain vakiomenetelmiä.
käyttöliittymä vs abstrakti luokka

Abstraktin luokan tarve Javassa

Kun käytät abstraktia luokkaa, se sisältää vain toiminnallisuuden, ei toteutusta. Mutta abstraktin luokan alaluokat käyttävät toiminnallisuutta toteutukseen. Toisin sanoen alaluokat voivat ohittaa abstraktin luokan. Keskitytään esimerkkiin oppiaksemme abstraktin luokan käsitteen.

Ajatellaan esimerkiksi luokkaa Animal. Sisällytämme eläinäänien toiminnallisuuden abstraktiin luokkaan, eli otamme menetelmäksi sound(). Olkoon kissa, koira ja leijona luokan Animal alaluokkia. Jokaisella eläimellä on ainutlaatuinen ääni. Jos siis toteutamme sound()-menetelmän superluokassa, siitä ei ole hyötyä.

Jokaisen alaluokan tulee ohittaa superluokka superluokassa määritellyn toiminnallisuuden toteuttamiseksi. Käyttämällä eläintä abstraktina luokkana, sen jokainen alaluokka, kissa, koira ja leijona, toteuttaa sound()-menetelmän. Kaikki alaluokat superluokka toteuttaa superluokan menetelmiä käyttämällä avainsanaa 'laajentuu'.

|_+_|

Lähtö:

|_+_|

Mikä on käyttöliittymä?

Tähän mennessä olemme käsitelleet abstraktin luokan ja abstraktit menetelmät. Jatkamme käyttöliittymää eteenpäin. Mikä on Java-käyttöliittymä? Javan käyttöliittymän ja abstraktin luokan käyttötarkoitus on sama, eli abstraktion käsitteen toteuttaminen.

Katso myös Kuinka käyttää Facebookin 'Take a Break' -ominaisuutta jonkun mykistykseen

Java-käyttöliittymässä on menetelmiä. Mutta nämä menetelmät ovat abstrakteja menetelmiä ilman toteutusta. Käytämme 'abstraktia' avainsanana abstraktin luokan ilmoittamiseen. Samoin avainsanaa 'rajapinta' käytetään ilmoittamaan käyttöliittymä Javassa. Kuten abstrakti luokka, käyttöliittymä määrittelee vain siinä olevat menetelmät. Ja luokat toteuttavat käyttöliittymän määrittelemät menetelmät.

Syntaksi:

|_+_|

Java-käyttöliittymä voi sisältää menetelmiä ilman niiden toteutusta, ja menetelmät voivat olla joko julkisia, staattisia tai lopullisia. Abstraktissa luokassa luokat toteuttavat superluokan menetelmiä käyttämällä avainsanana 'extends'. Sitä vastoin käyttöliittymässä luokkien, jotka käyttävät käyttöliittymän menetelmiä, on sisällytettävä avainsanaksi 'implements'.

img 617dd312ad2f7

Java-liittymän tarve

Yksi merkittävistä Java-rajapinnan käytön tarpeista on toteuttaa moninkertainen perintö konsepti. Javassa useat periytykset suoritetaan käyttöliittymien avulla. Toinen Java-käyttöliittymän ensisijainen vaatimus on abstraktio. Sekä Java käyttöliittymä että abstrakti luokka seuraavat abstraktiota.

Miksi käyttää kahta eri käsitettä, käyttöliittymää ja abstraktia luokkaa, abstraktion toteuttamiseen? Syy tähän kysymykseen on muuttujien käyttö abstraktissa luokassa ja käyttöliittymässä. Voimme käyttää lopullisia, julkisia ja staattisia muuttujia käyttöliittymässä, kun taas abstraktissa luokassa käytetään vain ei-lopullisia muuttujia.

Katsotaanpa nyt esimerkkiä Java-liittymästä. Harkitse käyttöliittymää Shape with side() menetelmänä ja luokkia Kolmio, Neliö ja Pentagon. Kaikki kolme luokkaa toteuttavat Shape-liittymän side()-menetelmän.

|_+_|

Lähtö:

|_+_|

Abstract Class vs Interface Javassa

Olemme nähneet, mitä ovat abstraktit luokat ja käyttöliittymät Javassa. Keskustelimme myös abstraktin luokan ja Java-rajapinnan tarpeesta heidän esimerkeineen. Abstraktin toteuttamiseen Javassa käytetään sekä abstraktia luokkaa että käyttöliittymää. Javan käyttöliittymän jatkokäyttö on kuitenkin moniperinnön toteuttamista. Alla oleva taulukko auttaa sinua ymmärtämään tarkan eron abstraktin luokan ja Java-rajapinnan välillä:

Abstrakti luokkaKäyttöliittymä
Abstrakti luokka Javassa sisältää abstrakteja menetelmiä ja perinteisiä menetelmiä.Java-käyttöliittymä sisältää tiukasti vain abstrakteja menetelmiä.
Abstrakti luokka toimii nopeammin.Käyttöliittymä on suhteellisen hitaampi kuin abstrakti luokka.
Sitä käytetään vain abstraktion käsitteen toteuttamiseen, ei moninkertaista periytymistä.Voit käyttää Java-käyttöliittymää sekä abstraktion että moniperinnön suorittamiseen.
Voit käyttää staattisia, ei-staattisia ja ei-lopullisia muuttujia abstraktissa luokassa.Voit käyttää käyttöliittymässä lopullisia, julkisia ja staattisia muuttujia.
Abstraktia luokkaa käytetään välttämään itsenäisyyttä.Käyttöliittymää voidaan käyttää myöhempään rikastukseen.
Yksi luokka voi laajentaa vain yhtä abstraktia luokkaa.Yksi luokka voi toteuttaa useita rajapintoja.
Abstraktin luokan julistuksessa käytetään avainsanaa 'abstract'.Java-käyttöliittymä voidaan toteuttaa avainsanalla 'rajapinta'.
Voit käyttää käyttöoikeusmuutoksia abstraktissa luokassa.Liitäntä ei tue erilaisten pääsymäärittäjien käyttöä. Kaikki käyttöliittymässä määritelty on julkista.
Avainsanaa 'laajentaa' käytetään laajentamaan abstraktia luokkaa.Avainsanaa 'toteuttaa' käytetään käyttöliittymän toteuttamiseen.
Abstrakti on joustava, joka voi laajentaa toista luokkaa ja toteuttaa useita rajapintoja.Java-käyttöliittymä voi laajentaa vain muita rajapintoja.
Abstraktissa luokassa voit ilmoittaa konstruktoreita ja tuhoajia.Rakentajien ja destruktoreiden käyttö ei ole sallittua Java-käyttöliittymässä.
Abstraktissa luokassa voit määrittää kenttiä ja vakioita.Käyttöliittymässä et voi määrittää mitään kenttää.

Kaikki yllä olevat ovat pieniä eroja abstraktin luokan ja Java-liittymän välillä. Huomaa kaikki erot oikein abstraktin luokan ja käyttöliittymän välillä ja suorita koodit asianmukaisesti. Abstraktin ja käyttöliittymän lisäksi Javassa on konkreettinen tai perinteinen luokka.

Katso myös 10 korjausta tekstistä puheeksi, joka ei toimi

Mikä on betoniluokka Javassa?

Toisin kuin Javassa abstrakti luokka ja käyttöliittymä, konkreettinen luokka sisältää menetelmiä, joilla on toteutukset. Voit luoda konkreettisen luokan objektin ja instantioida sen. Lisäksi betoni voi toteuttaa rajapinnan ja laajentaa abstraktia luokkaa Javassa.

Syntaksi:

|_+_|

Konkreettisella luokalla tulisi olla kaikki menetelmänsä toteutus. Jos jollakin konkreettisella luokkametodilla ei ole toteutusta, luokka ei ole konkreettinen luokka. Konkreettisella luokalla on merkittävä ero abstraktin luokan ja Java-rajapinnan välillä. Kerro meille nyt, kuinka konkreettinen luokka toteutetaan tai suoritetaan esimerkin avulla.

Harkitse luokkaoperaatiota, jolla on kaksi menetelmää, summa ja erotus. Konkreettinen luokka sisältää summa- ja erotusmenetelmien toteutuksen, ja olio voidaan luoda kutsumaan näitä menetelmiä.

|_+_|

Lähtö:

|_+_|

Luokka Vs. Abstrakti luokka vs. Java-käyttöliittymä

Tässä viestin osassa näemme eron perinteisen luokan, abstraktin luokan ja Java-liittymän välillä.

LuokkaAbstrakti luokkaKäyttöliittymä
Luokka tukee vain konkreettisia menetelmiä (menetelmiä, joissa on toteutuksia) eikä abstrakteja menetelmiä.Abstraktiluokka tukee sekä abstrakteja menetelmiä että konkreettisia menetelmiä. Abstraktiksi ilmoitetulla luokalla tulee kuitenkin olla vähintään yksi abstrakti menetelmä.Käyttöliittymä tukee ehdottomasti vain abstrakteja menetelmiä, ei konkreettisia menetelmiä.
Betoniluokassa metodin toteutus on pakollinen.Abstraktissa Java-luokassa se voi sisältää menetelmän toteutuksen tai ei.Käyttöliittymä ei sisällä menetelmän toteutusta.
Betoniluokka ei käytä mitään avainsanoja ilmoitukseen.Abstrakti luokka käyttää 'abstraktia avainsanaa julistukseen'.Käyttöliittymä käyttää ilmoitusta 'rajapinta'-avainsanaa.
Voimme luoda konkreettisen luokan objekteja.Emme voi luoda abstraktin luokan objekteja, mutta abstraktin luokan toteuttava alaluokka voi luoda objekteja.Kuten abstrakti luokka, emme voi luoda objekteja käyttöliittymään. Rajapinnan toteuttava luokka luo objekteja.

Abstrakti luokka ja käyttöliittymä Java-esimerkkikoodi

Olemme nähneet yksityiskohtaisesti erilaisia ​​​​esimerkkejä abstraktista luokasta ja käyttöliittymästä. Siirrymme nyt kohti yhtä Java-esimerkkikoodia, joka havainnollistaa sekä abstraktia luokkaa että käyttöliittymää.

|_+_|

Lähtö:

|_+_|

Yllä oleva koodi oli paras abstrakti luokka ja käyttöliittymä Java esimerkki.

FAQ

yksi. Mikä on abstraktin luokan ja käyttöliittymän tarkoitus Javassa?

Käytämme Javassa abstraktia luokkaa edustamaan useiden alaluokkien tyypillistä käyttäytymistä toteuttamatta koko luokkaa. Java-rajapintaa käytetään ensisijaisesti useiden perintöjen toteuttamiseen, koska Java ei ole yhteensopiva useiden perintöjen kanssa. Toinen käyttöliittymän käyttö Javassa on viestintä.

kaksi. Mikä on käyttöliittymä vs. abstrakti luokka?

Abstrakti Java-luokka antaa käyttäjille mahdollisuuden määritellä toimintoja, ja sen alaluokat toteuttavat nämä toiminnot. Toisaalta Java-käyttöliittymä vain määrittelee toiminnallisuudet, mutta ei toteuta niitä. Mikä tahansa perinteinen tai konkreettinen luokka voi laajentaa vain yhtä abstraktia luokkaa, kun taas yksi luokka voi toteuttaa useita rajapintoja.

3. Onko Java:n abstraktilla luokalla ja käyttöliittymällä konstruktoria?

Abstraktissa luokassa voi olla konstruktoreita, kun taas käyttöliittymä ei sisällä konstruktoreita. Siinä on vain abstrakteja menetelmiä.

Johtopäätös

Java on yksi eniten käytetyistä ohjelmointikielistä, joka on alustasta riippumaton. Se tarjoaa joustavuuden ajaa käännetty Java-koodi millä tahansa muulla alustalla helposti. Javassa abstrakti luokka ja käyttöliittymä otetaan käyttöön abstraktiokonseptin toteuttamiseksi. Abstraktiossa minkä tahansa menetelmän toteutustiedot piilotetaan käyttäjältä.

Javassa abstraktilla luokalla ja käyttöliittymällä on pieni ero. Abstraktissa Java-luokassa on vähintään yksi abstrakti menetelmä, kun taas käyttöliittymässä on ehdottomasti abstraktit menetelmät. Abstrakti menetelmä ei sisällä toteutusta. Olemme myös nähneet Abstract Class Vs. Käyttöliittymä. Myöhemmin käsittelimme konkreettista luokkaa ja luokka vs. abstrakti luokka vs. käyttöliittymä. Olemme merkinneet muistiin yksittäisen ja yhdistetyn Java-esimerkin abstraktista luokasta ja käyttöliittymästä.