Razlike med abstraktnim razredom in vmesnikom v Javi

Izvleček razreda proti vmesniku na Javi

Za razumevanje razlik med abstraktnim razredom in vmesnikom v Javi je pomembno, da jih najprej razumemo neodvisno. Abstraktni razred v Javi se uporablja pri deklariranju podrazredov z naborom skupnih značilnosti. Običajna uporaba abstraktnega razreda je super razred drugih razredov, ki dejansko omogoča razširitev abstraktnega razreda. V deklaraciji abstraktnega razreda se uporablja abstraktna ključna beseda. Tako kot bi imel kateri koli drug razred, tudi abstraktni razred vsebuje polja, ki opisujejo metode in značilnosti, ki jih razred lahko opravlja. Z zgolj deklaracijo abstraktnega razreda ni mogoče začeti razreda

Java-vmesnik je mogoče enačiti s protokolom. Predstavlja prednastavljeno in dogovorjeno vedenje, ki omogoča olajšanje interakcije nepovezanih predmetov. Glede na uporabnika ima vmesnik ključ do različnih dejanj, ki se izvajajo. Vmesnik torej služi kot vez med proizvajalcem in potrošnikom. Vmesniki v Javi so torej skupina metod, ki vsebujejo prazna telesa, ki imajo lahko konstantne deklaracije. Pri izpostavljanju razreda vmesniku Java pomeni, da se vedenje, ki se pričakuje od razreda, izvajanje vseh metod vmesnika.


Razlike

Najprej abstraktni razred omogoča polja, ki niso statična ali končna, v nasprotju s statičnimi in končnimi polji, ki se uporabljajo v vmesnikih. Vmesniki ne morejo uporabljati nobene izvedbene kode, ki je uporabljena v njih, in morda je koda izvedbe, uporabljena v abstraktnem razredu. Izvedbene kode v abstraktnem razredu imajo lahko nekaj ali vse izvedene metode. Privzeto so vse metode vmesnika "abstraktne".

Vidnost je mogoča tudi za metode ali člane abstraktnega razreda, ki se lahko razlikujejo, na primer javni, zaščiteni, zasebni ali nobeni. Na drugi strani je vidnost vmesnika mogoče nastaviti samo v enem načinu vidnosti, ki je "javni". "

Abstraktni razred bo samodejno podedoval objektni razred. To dejansko pomeni, da so vključene metode, kot sta klon () in enako (). V vmesniku ni mogoče dedovati razreda predmeta. Po tem ima abstraktni razred možnost konstruktorja, vmesnik pa ga ne more imeti.

Vmesnik na Javi ima tudi zelo pomembno funkcijo z izvajanjem več podedovanj, saj ima razred lahko le en super razred. Čeprav je prisoten le en super razred, ga je mogoče uporabiti v poljubnem številu vmesnikov. V abstraktnem razredu ni mogoče imeti več dedovanj.

Pri izvedbi so vmesniki ponavadi počasnejši v izvajanju, v nasprotju z abstraktnim razredom, predvsem zaradi dodatne smeri iskanja ustrezne metode v razredu. Razlika pa je postala počasnejša zaradi sodobnih Java-ovih virtualnih strojev, ki se nenehno nadgrajujejo.

Če dodate metodo v vmesnik, morate izslediti vse razrede izvajanja, ki izvajajo določen vmesnik. Lahko pa vmesnik razširite tako, da mu omogočite dodatne metode. Če imate opravka z abstraktnim razredom, morate dodati še privzeto izvajanje metode in koda še naprej deluje. V kolikor obstajajo razlike med abstraktnimi razredi in vmesniki, je pomembno upoštevati, da niso tekmeci, vendar razlike, omenjene v tem dokumentu, se medsebojno dopolnjujejo..  

Povzetek

  1. Abstraktna polja razreda niso statična ali končna v nasprotju z vmesnikom, ki ima statične in končne tabele.

  2. V vmesnikih ni mogoče uporabiti nobene izvedbene kode, medtem ko jo lahko uporabljamo v abstraktnem razredu.

  3. Vidnost vmesnikov je lahko javna, medtem ko je vidna razglednost razredov lahko različna.

  4. Abstraktni razred samodejno podeduje objektni razred, vendar v vmesniku to ni mogoče.

  5. Abstraktni razred je hitrejši od vmesnika pri izvajanju.