Käyttöliittymä vs Java-tiivistelmäluokka: Mikä ero on?

Mikä on käyttöliittymä?

Käyttöliittymä on suunnitelma, jota voidaan käyttää luokan toteuttamiseen. Käyttöliittymä ei sisällä mitään konkreettisia menetelmiä (menetelmiä, joilla on koodi). Kaikki käyttöliittymän menetelmät ovat abstrakteja menetelmiä.

Käyttöliittymää ei voida instantisoida. Rajat, jotka toteuttavat rajapintoja, voidaan kuitenkin instantisoida. Liitännät eivät koskaan sisällä esiintymämuuttujia, mutta ne voivat sisältää julkisia staattisia lopullisia muuttujia (ts. Vakioluokan muuttujia)

Mikä on abstrakti luokka?

Luokkaa, jonka julistuksessa on abstrakti avainsana, kutsutaan abstraktiksi luokaksi. Abstrakteilla luokilla tulisi olla vähintään yksi abstrakti menetelmä. eli menetelmät ilman kehoa. Sillä voi olla useita konkreettisia menetelmiä.

Abstraktien luokkien avulla voit luoda piirustuksia konkreettisille luokille. Mutta perivän luokan tulisi toteuttaa abstrakti menetelmä.

Abstrakteja luokkia ei voida instantisoida.

Tärkeitä syitä käyttöliittymien käyttöön

  • Rajapintoja käytetään abstraktion saavuttamiseen.
  • Suunniteltu tukemaan dynaamista menetelmän tarkkuutta ajon aikana
  • Se auttaa sinua saavuttamaan löysän kytkennän.
  • Voit erottaa menetelmän määritelmän perintöhierarkiasta

Tärkeitä syitä abstraktin luokan käyttämiseen

  • Abstraktit luokat tarjoavat oletustoiminnot alaluokille.
  • Tarjoaa mallin tuleville luokille
  • Auttaa määrittämään yhteisen käyttöliittymän sen alaluokille
  • Abstrakti luokka sallii koodin uudelleenkäytettävyyden.

Liitäntä Vs. Abstrakti luokka

Abstrakti luokka antaa sinun tehdä toimintoja, jotka alaluokat voivat toteuttaa tai ohittaa, kun taas käyttöliittymä sallii sinun vain ilmoittaa toiminnallisuuden, mutta ei toteuttaa sitä. Luokka voi laajentaa vain yhtä abstraktia luokkaa, kun taas luokka voi toteuttaa useita rajapintoja.

Parametrit Käyttöliittymä Abstrakti luokka
Nopeus Hidas Nopeasti
Useita perintöjä Toteuta useita liitäntöjä Vain yksi abstrakti luokka
Rakenne Abstraktit menetelmät Abstraktit ja konkreettiset menetelmät
Milloin käyttää Tuleva parannus Itsenäisyyden välttämiseksi
Perintö / toteutus Luokka voi toteuttaa useita rajapintoja Luokka voi periä vain yhden tiivistelmäluokan
Oletustoteutus Vaikka lisäät uusia asioita käyttöliittymään, on painajainen löytää kaikki toteuttajat ja toteuttaa vasta määriteltyjä juttuja. Abstraktin luokan tapauksessa voit hyödyntää oletustoteutusta.
Pääsyn muokkaajat Käyttöliittymässä ei ole pääsymuuttujia. Kaikki rajapinnan sisällä määritelty oletetaan julkiseksi muokkaajaksi. Abstraktilla luokalla voi olla pääsyn muokkaaja.
Milloin käyttää On parempi käyttää käyttöliittymää, kun erilaiset toteutukset jakavat vain menetelmän allekirjoituksen. Arvotyyppien polymorfinen hierarkia. Sitä tulisi käyttää, kun useilla samanlaisilla toteutuksilla on sama käytös.
Tietokentät käyttöliittymä ei voi sisältää tietokenttiä. luokassa voi olla tietokenttiä.
Useiden perintöjen oletus Luokka voi toteuttaa useita rajapintoja. Luokka perii vain yhden abstraktin luokan.
Toteutus Käyttöliittymä on abstrakti, joten se ei voi antaa koodia. Abstrakti luokka voi antaa täydellisen oletuskoodin, joka tulisi ohittaa.
Access-modifikaattoreiden käyttö Et voi käyttää menetelmän muokkaajia menetelmään, ominaisuuksiin jne. Voit käyttää abstraktia luokkaa, joka sisältää pääsyn muokkaajia.
Käyttö Liitännät auttavat määrittelemään luokan perifeeriset kyvyt. Abstrakti luokka määrittää luokan identiteetin.
Määritetyt kentät Kenttiä ei voida määrittää Abstraktin luokan avulla voit määrittää sekä kentät että vakiot
Perintö Liitäntä voi periä useita rajapintoja, mutta ei periä luokkaa. Abstrakti luokka voi periä luokan ja useita rajapintoja.
Rakentaja tai tuhoajat Rajapinta ei voi ilmoittaa rakentajia tai tuhoajia. Abstrakti luokka voi julistaa rakentajat ja destruktorit.
Laajennusten raja Se voi laajentaa mitä tahansa määrää rajapintoja. Se voi laajentaa vain yhtä luokkaa tai yhtä abstraktia luokkaa kerrallaan.
Tiivistelmä avainsana Abstraktissa käyttöliittymän avainsanassa on valinnainen menetelmän julistamiseksi abstraktiksi. Abstraktissa luokassa abstrakti avainsana on pakollinen menetelmän julistamiseksi abstraktiksi.
Luokan tyyppi Liitännällä voi olla vain julkisia abstrakteja menetelmiä. Abstraktilla luokalla on suojattuja ja julkisia abstrakteja menetelmiä.

Esimerkkikoodi Java-käyttöliittymälle ja tiivistelmäluokalle

Seuraavassa on esimerkkikoodi rajapinnan ja abstraktin luokan luomiseksi Java

Liitännän syntakse

interface name{//methods}

Java-käyttöliittymäesimerkki:

interface Pet {public void test();}class Dog implements Pet {public void test() {System.out.println("Interface Method Implemented");}public static void main(String args[]) {Pet p = new Dog();p.test();}}

Tiivistelmä luokan syntaksista

abstract class name{// code}

Tiivistelmä luokan esimerkistä:

abstract class Shape {int b = 20;abstract public void calculateArea();}public class Rectangle extends Shape {public static void main(String args[]) {Rectangle obj = new Rectangle();obj.b = 200;obj.calculateArea();}public void calculateArea() {System.out.println("Area is " + (obj.b * obj.b));}}

Mielenkiintoisia artikkeleita...