Veebirakendused

Java liides vs abstraktne klass: mis vahe on?

30. oktoober 2021

Java on üks juhtivaid ja sagedamini kasutatavaid programmeerimiskeeli kogu maailmas. See on objektorienteeritud programmeerimine keel, mida saab kasutada mis tahes platvormil. Java programmeerimiskeel põhineb WORA põhimõttel. WORA tähendab, et kirjuta üks kord, jookse kõikjal. Teisisõnu käivitab Java keel oma kompileeritud koodi igal pool mis tahes platvormilt ilma seda uuesti kompileerimata. Abstraktne klass ja liides Javas on kaks olulist klassi.

Sisukord

Mis on Java?

Java on võimas programmeerimiskeel, mis tagab turvalise programmeerimise. The Päikese mikrosüsteem on Java keele arendaja. See toimib nii platvormi kui ka programmeerimiskeelena. Arendajad saavad Java programmeerimiskeelt kasutada mobiilirakenduste, töölauatarkvara rakenduste, manussüsteemide jne arendamiseks.

Java keele kasutamise oluline eelis on see, et see on platvormist sõltumatu. Arendajad saavad Java koodi kirjutada ja kompileerida ühes operatsioonisüsteem või platvormi ja käivitage või käivitage sama kompileeritud kood mõnel teisel operatsioonisüsteemil või platvormil. A Java virtuaalmasin (JVM) vastutab mis tahes kompileeritud Java koodi käitamise eest. Java virtuaalmasinas (JVM) mis tahes koodi käivitamiseks tuleb kood teisendada Java baitkood , nagu JVM aktsepteerib Java baitkoodi.

Java keele põhielemendid

Java programmeerimiskeel on objektorienteeritud. Seega hõlmab mis tahes Java kood objektide kombinatsiooni. Neid objekte kasutatakse koodi sees mis tahes funktsiooni kutsumiseks või käivitamiseks. Java programmeerimiskeel sisaldab tavaliselt oma koodis järgmisi elemente:

    Klass:

TO klass Java programmeerimiskeeles on meetodite ja andmemuutujate kogum. Lisaks luuakse klassis objekte

    Objekt:

An objektiks Java keeles esindab konkreetse asja olekut, käitumist ja identiteeti. Kui deklareerite klassis objekti, kasutatakse seda sama klassi meetodite täitmiseks.

    Meetodid:

meetodid nimetatakse funktsioonideks, mis täidavad teatud otstarbel koodiplokki. Meetodeid kutsutakse iga objekte kasutava programmi põhifunktsioonis.

    Eksemplari muutujad:

Eksemplari muutujad on kordumatud muutujad, mis on määratud igale objektitüübile.

Allpool on toodud Java programmi süntaks.

|_+_|

Oleme näinud klassi deklaratsiooni ja selle nimetamist selle objekti põhifunktsioonis. Javas on erinevaid klasse, näiteks POJO klass , staatiline klass, abstraktne klass, betooni klass , lõpuklass ja siseklass. Kuid selles artiklis õpime ainult abstraktset klassi. Oleme arutanud Java põhitõdesid. Sukeldume nüüd oma põhiteemasse, abstraktse klassi ja Java liidesesse.

Mis on abstraktne klass?

Klassi, mis on deklareeritud kasutades märksõna 'abstraktne', nimetatakse abstraktseks klassiks. Enne kui sukeldume abstraktse klassi üksikasjadesse, saame kõigepealt teada, mida abstraktsioon täpselt tähendab.

Vaata ka 10 parimat spioonirakendust Androidi ja iPhone'i jaoks

Abstraktsioon

Sõna ' abstraktsioon ' tähendab, et rakendusmeetodeid ei avalikustata ega peideta ning kuvatakse ainult funktsionaalsust. Sellises olukorras on kasutaja kursis vaid vajalike ja hädavajalike asjadega. Kasutajal pole vaja teada muid sisemisi funktsioone. Abstraktsiooni saab saavutada kahe Java elemendi – abstraktse klassi ja liidese – abil.

Näiteks Inimene saadab a tekstisõnum teisele inimesele. Saatja tippib sõnumi ja saadab selle. Kuid ta ei ole teadlik protsessist, kuidas sõnum teisele inimesele edastab. Saatja teab sõnumit, mitte suhtlusviisi. See on parim näide abstraktsioonist.

Ülaltoodud näite põhjal võisite mõista abstraktsiooni mõistet. Liigume nüüd abstraktse klassi poole. Kasutades märksõna 'abstract', saame luua abstraktse klassi.

Süntaks:

|_+_|

Abstraktne klass sisaldab meetodeid, mis võivad olla nii abstraktsed kui ka mitteabstraktsed.

Mis on abstraktne meetod?

Abstraktne meetod on funktsioon, millel pole selle rakendamist. See sisaldab funktsiooni või meetodi nime, millele järgneb semikoolon.

Süntaks:

|_+_|

Abstraktse klassi rakendamisel peate meeles pidama mõnda olulist punkti.

  1. Peaksite abstraktse alati deklareerima märksõnaga 'abstraktne'.
  2. Abstraktsete klasside hulka saate lisada nii abstraktseid meetodeid kui ka traditsioonilisi meetodeid.
  3. Kõige olulisem asi, mida meeles pidada, on see, et te ei saa abstraktset klassi instantseerida. Teisisõnu, te ei saa abstraktses klassis ühtegi objekti luua.
  4. Abstraktsesse klassi saate kaasata konstruktoreid ja staatilisi meetodeid.
  5. Tavalistel või traditsioonilistel klassidel ei saa olla abstraktseid meetodeid. See toetab ainult standardmeetodeid.
liides vs abstraktne klass

Vajadus Java abstraktse klassi järele

Kui kasutate abstraktset klassi, hõlmab see ainult funktsioone, mitte teostust. Kuid abstraktse klassi alamklassid kasutavad juurutamiseks funktsioone. Teisisõnu, alamklassid võivad abstraktse klassi alistada. Abstraktse klassi mõiste õppimiseks keskendume näitele.

Mõelge näiteks klassile Loom. Abstraktsesse klassi kaasame loomade helide funktsionaalsuse, st võtame meetodiks sound(). Kass, koer ja lõvi olgu klassi Loomad alamklassid. Igal loomal on ainulaadne heli. Seega, kui rakendame heli()-meetodit superklassis, pole sellest kasu.

Iga alamklass peaks alistama ülemklassi, et rakendada superklassis määratletud funktsioone. Kasutades abstraktse klassina looma, rakendavad selle kõik alamklassid, kass, koer ja lõvi, heli()-meetodit. Kõik alamklassid superklass rakendada superklassi meetodeid, kasutades märksõna „laiendab”.

|_+_|

Väljund:

|_+_|

Mis on liides?

Siiani oleme käsitlenud abstraktset klassi ja abstraktseid meetodeid. Liidesega liigume edasi. Mis on Java liides? Liidese ja abstraktse klassi kasutamise eesmärk Javas on sama, st abstraktsiooni kontseptsiooni rakendamine.

Vaata ka Kuidas kasutada Facebooki funktsiooni „Take Break” kellegi vaigistamiseks

Java liidesel on meetodid. Kuid need meetodid on abstraktsed meetodid, mida ei rakendata. Abstraktse klassi deklareerimiseks kasutame märksõnana 'abstract'. Samamoodi kasutatakse Java-liidese deklareerimiseks märksõna 'liides'. Nagu abstraktne klass, määrab liides ainult selles olevad meetodid. Ja klassid rakendavad liidese määratud meetodeid.

Süntaks:

|_+_|

Java liides võib sisaldada meetodeid ilma nende rakendamiseta ja meetodid võivad olla avalikud, staatilised või lõplikud. Abstraktses klassis rakendavad klassid superklassi meetodeid, kasutades märksõnana 'laieneb'. Seevastu liideses peavad klassid, mis kasutavad liidese meetodeid, lisama märksõnana 'rakendused'.

img 617dd312ad2f7

Vajadus Java-liidese järele

Java-liidese kasutamise üks olulisi vajadusi on selle rakendamine mitmekordne pärimine kontseptsioon. Javas teostatakse mitu pärandit liideste abil. Teine Java liidese peamine nõue on abstraktsioon. Nii Java liides kui ka abstraktne klass järgivad abstraktsiooni.

Miks kasutada abstraktsiooni rakendamiseks kahte erinevat mõistet, liidest ja abstraktset klassi? Selle küsimuse põhjuseks on muutujate kasutamine abstraktses klassis ja liideses. Saame kasutada liideses lõplikke, avalikke ja staatilisi muutujaid, kasutades abstraktses klassis ainult mittelõplikke muutujaid.

Vaatame nüüd Java-liidese näidet. Vaatleme liidest Shape with side() kui meetodit ja klasse Kolmnurk, ruut ja viisnurk. Kõik kolm klassi rakendavad liidese Shape meetodit side().

|_+_|

Väljund:

|_+_|

Abstraktne klass vs liides Javas

Oleme näinud, mis on Java abstraktsed klassid ja liidesed. Samuti arutasime nende näidetega abstraktse klassi ja Java liidese vajadust. Abstraktsiooni rakendamiseks Java-s kasutatakse nii abstraktset klassi kui ka liidest. Liidese edasine kasutamine Javas on aga mõeldud mitme pärimise juurutamiseks. Allolev tabel aitab teil mõista täpset erinevust abstraktse klassi ja Java liidese vahel:

Abstraktne klassLiides
Java abstraktne klass sisaldab abstraktseid meetodeid ja traditsioonilisi meetodeid.Java liides hõlmab rangelt ainult abstraktseid meetodeid.
Abstraktne klass töötab kiiremini.Liides on suhteliselt aeglasem kui abstraktne klass.
Seda kasutatakse ainult abstraktsiooni, mitte mitmekordse pärimise kontseptsiooni rakendamiseks.Java-liidest saate kasutada nii abstraktsiooni kui ka mitme pärimise jaoks.
Abstraktses klassis saate kasutada staatilisi, mittestaatilisi ja mittelõplikke muutujaid.Liideses saate kasutada lõplikke, avalikke ja staatilisi muutujaid.
Abstraktset klassi kasutatakse iseseisvuse vältimiseks.Liidest saab kasutada edaspidiseks rikastamiseks.
Üks klass võib laiendada ainult ühte abstraktset klassi.Üks klass võib rakendada mitut liidest.
Abstraktse klassi deklaratsioonis kasutatakse märksõna 'abstract'.Java-liidest saab rakendada märksõna „liides” abil.
Abstraktses klassis saate kasutada juurdepääsu muutjaid.Liides ei toeta erinevate juurdepääsu modifikaatorite kasutamist. Kõik liideses määratletud on avalik.
Abstraktse klassi laiendamiseks kasutatakse märksõna 'laiendab'.Liidese juurutamiseks kasutatakse märksõna „rakendused”.
Abstraktne on paindlik, mis võib laiendada teist klassi ja rakendada mitut liidest.Java liides võib laiendada ainult teisi liideseid.
Abstraktses klassis saate deklareerida konstruktoreid ja hävitajaid.Konstruktorite ja destruktorite kasutamine ei ole Java liideses lubatud.
Abstraktses klassis saate määratleda välju ja konstante.Liideses ei saa te ühtegi välja määratleda.

Kõik ülaltoodud on väikesed erinevused abstraktse klassi ja Java liidese vahel. Pange tähele kõiki erinevusi abstraktse klassi ja liidese vahel ning käivitage koodid õigesti. Lisaks abstraktsele ja liidesele on Java-s konkreetne või traditsiooniline klass.

Vaata ka 10 parandust, miks tekst kõneks ei tööta

Mis on Java betooniklass?

Erinevalt abstraktsest klassist ja Java liidesest sisaldab konkreetne klass meetodeid, millel on oma teostus. Saate luua konkreetse klassi objekti ja selle instantseerida. Samuti saab betoon rakendada liidest ja laiendada Java abstraktset klassi.

Süntaks:

|_+_|

Betooniklassis peaks olema rakendatud kõik selle meetodid. Kui mõnel konkreetsel klassimeetodil pole rakendust, pole klass konkreetne klass. Betooniklassil on abstraktse klassi ja Java liidese vahel märkimisväärne erinevus. Nüüd andke meile näite abil teada, kuidas konkreetset klassi rakendatakse või täidetakse.

Mõelge klassioperatsioonile, millel on kaks meetodit, summa ja erinevus. Betooniklass sisaldab summa- ja erinevusmeetodite rakendamist ning objekti saab luua nende meetodite esilekutsumiseks.

|_+_|

Väljund:

|_+_|

Klass Vs. Abstraktne klass Vs. Liides Java keeles

Selles postituse osas näeme erinevust Java traditsioonilise klassi, abstraktse klassi ja liidese vahel.

KlassAbstraktne klassLiides
Klass toetab ainult konkreetseid meetodeid (rakendustega meetodeid), mitte abstraktseid meetodeid.Abstraktne klass toetab nii abstraktseid meetodeid kui ka konkreetseid meetodeid. Abstraktseks kuulutatud klassil peaks aga olema vähemalt üks abstraktne meetod.Liides toetab rangelt ainult abstraktseid meetodeid, mitte konkreetseid meetodeid.
Betooniklassis on meetodi rakendamine kohustuslik.Java abstraktses klassis võib see sisaldada, kuid ei pruugi sisaldada meetodi rakendamist.Liides ei sisalda meetodi rakendamist.
Betooniklass ei kasuta deklareerimiseks ühtegi märksõna.Abstraktne klass kasutab deklareerimiseks abstraktset märksõna.Liides kasutab deklareerimiseks märksõna 'liides'.
Saame luua betooniklassi objekte.Me ei saa luua abstraktse klassi objekte, kuid abstraktset klassi rakendav alamklass saab luua objekte.Nagu abstraktne klass, ei saa me liideses objekte luua. Liidest rakendav klass loob objekte.

Abstraktne klassi ja liidese Java näitekood

Oleme üksikasjalikult näinud abstraktse klassi ja liidese erinevaid näiteid. Nüüd liigume ühe Java näitekoodi poole, mis illustreerib nii abstraktset klassi kui ka liidest.

|_+_|

Väljund:

|_+_|

Ülaltoodud kood oli parim abstraktse klassi ja liidese Java näide.

KKK

üks. Mis on abstraktse klassi ja liidese eesmärk Javas?

Me kasutame Javas abstraktset klassi, et esindada mitme alamklassi tüüpilist käitumist ilma kogu klassi rakendamata. Java liidest kasutatakse peamiselt mitme pärandi rakendamiseks, kuna Java ei ühildu mitme pärandiga. Teine Java liidese kasutusala on suhtlus.

kaks. Mis on liides vs. abstraktne klass?

Java abstraktne klass võimaldab kasutajatel funktsioone määratleda ja selle alamklassid rakendavad neid funktsioone. Teisest küljest määrab Java liides ainult funktsioonid, kuid ei rakenda neid. Iga traditsiooniline või konkreetne klass saab laiendada ainult ühte abstraktset klassi, samas kui üks klass võib rakendada mitut liidest.

3. Kas Java abstraktsel klassil ja liidesel on konstruktor?

Abstraktne klass võib sisaldada konstruktoreid, samas kui liides ei sisalda konstruktoreid. Sellel on ainult abstraktsed meetodid.

Järeldus

Java on üks enamkasutatavaid programmeerimiskeeli, mis on platvormist sõltumatu. See pakub paindlikkust kompileeritud Java-koodi hõlpsaks käitamiseks mis tahes muul platvormil. Javas võetakse abstraktsioonikontseptsiooni rakendamiseks kasutusele abstraktne klass ja liides. Abstraktsioonis on meetodi rakendamise üksikasjad kasutaja eest peidetud.

Javas on abstraktsel klassil ja liidesel väike erinevus. Java abstraktsel klassil on vähemalt üks abstraktne meetod, samas kui liideses on abstraktsed meetodid. Abstraktne meetod ei hõlma rakendamist. Oleme näinud ka Abstract Class Vs. Liides. Hiljem käsitlesime konkreetset klassi ja klass vs abstraktne klass vs liides. Oleme üles märkinud abstraktse klassi ja liidese individuaalse ja kombineeritud Java näite.