Abstraktin Luokan Ja Käyttöliittymän Välinen Ero

Abstraktin Luokan Ja Käyttöliittymän Välinen Ero
Abstraktin Luokan Ja Käyttöliittymän Välinen Ero

Video: Abstraktin Luokan Ja Käyttöliittymän Välinen Ero

Video: Abstraktin Luokan Ja Käyttöliittymän Välinen Ero
Video: Javan perusteita lyhyesti: Luokat ja oliot 2024, Marraskuu
Anonim

Tiivistelmä luokka vs käyttöliittymä

Abstrakti luokka ja käyttöliittymä ovat kaksi olio-orientoitua rakennetta, joita löytyy monista olio-ohjelmointikielistä, kuten Java. Abstraktia luokkaa voidaan pitää abstraktina versiona tavallisesta (konkreettisesta) luokasta, kun taas käyttöliittymää voidaan pitää keinona toteuttaa sopimus. Abstrakti luokka on luokka, jota ei voida alustaa, mutta jota voidaan pidentää. Liitäntä on tyyppi, joka muiden luokkien on toteutettava. Java-ohjelmassa abstraktit luokat ilmoitetaan käyttämällä abstraktia avainsanaa, kun taas käyttöliittymän avainsanaa käytetään rajapinnan määrittelemiseen.

Mikä on abstrakti luokka?

Tyypillisesti tiivistelmäluokkia, joita kutsutaan myös nimellä ABC (Abstract Base Classes), ei voida instantisoida (kyseisen luokan instanssia ei voida luoda). Joten abstrakteilla luokilla on merkitystä vain, jos ohjelmointikieli tukee perintöä (kyky luoda alaluokkia luokan laajentamisesta). Abstraktit luokat edustavat yleensä abstraktia käsitettä tai kokonaisuutta, joka on toteutettu osittain tai kokonaan. Siksi abstraktit luokat toimivat vanhempien luokkina, joista lapsiluokat on johdettu siten, että lapsiluokka jakaa vanhempien luokan puutteelliset ominaisuudet ja toiminnot voidaan lisätä niiden täydentämiseksi.

Abstraktit luokat voivat sisältää abstrakteja menetelmiä. Abstraktin luokan laajentavat alaluokat voivat toteuttaa nämä (perityt) abstraktit menetelmät. Jos lapsiluokka toteuttaa kaikki tällaiset abstraktit menetelmät, se on konkreettinen luokka. Mutta jos ei, lapsiluokasta tulee myös abstrakti luokka. Tämä kaikki tarkoittaa sitä, että kun ohjelmoija nimittää luokan tiivistelmäksi, hän sanoo, että luokka on puutteellinen ja että siinä on elementtejä, jotka perittävien alaluokkien on täytettävä. Tämä on hieno tapa luoda sopimus kahden ohjelmoijan välillä, mikä yksinkertaistaa ohjelmistokehityksen tehtäviä. Ohjelmoijan, joka kirjoittaa koodin perimään, on noudatettava tarkasti menetelmän määritelmiä (mutta tietysti sillä voi olla oma toteutus).

Mikä on käyttöliittymä?

Käyttöliittymä on abstrakti tyyppi, jota käytetään määrittämään sopimus, jonka luokan tulisi toteuttaa, joka toteuttaa kyseisen rajapinnan. Käyttöliittymän avainsanaa käytetään rajapinnan määrittelemiseen, ja Implements-avainsanaa käytetään luokan käyttöliittymän toteuttamiseen (Java-ohjelmointikielellä). Yleensä käyttöliittymä sisältää vain metodin allekirjoituksia ja jatkuvia ilmoituksia. Kaikkien käyttöliittymien, jotka toteuttavat tietyn käyttöliittymän, tulisi toteuttaa kaikki käyttöliittymässä määritellyt menetelmät tai ne tulisi julistaa abstraktiksi luokaksi. Java-tilassa objektiviittauksen tyyppi voidaan määritellä käyttöliittymätyypiksi. Mutta kyseisen objektin on oltava joko nolla tai sen tulisi sisältää luokan objekti, joka toteuttaa kyseisen tietyn käyttöliittymän. Käyttämällä Java-sovelluksessa Implements-avainsanaa voit toteuttaa useita rajapintoja yhteen luokkaan.

Mitä eroa on abstraktiluokalla ja käyttöliittymällä?

Abstraktit luokat edustavat yleensä abstraktia konseptia tai kokonaisuutta, jolla on osittainen tai olematon toteutus. Toisaalta käyttöliittymä on abstrakti tyyppi, jota käytetään määrittelemään sopimus, joka tulisi toteuttaa luokittain. Abstraktit luokat tulisi periä (tai laajentaa), kun taas rajapinnat tulisi toteuttaa. Abstraktit luokat voivat sisältää abstrakteja menetelmiä, kun taas käyttöliittymän tulisi sisältää vain abstrakteja menetelmiä. Abstraktit luokat voivat sisältää mitä tahansa muuttujia, mutta rajapinnat voivat määrittää vain vakioita. Luokka ei voi periä useammasta kuin yhdestä abstraktista luokasta, mutta voi toteuttaa useita rajapintoja. Liitäntä ei voi toteuttaa toista liitäntää. Käyttöliittymä voi kuitenkin laajentaa luokkaa.

Suositeltava: