Ero abstraktin luokan ja käyttöliittymän välillä

Ero abstraktin luokan ja käyttöliittymän välillä
Ero abstraktin luokan ja käyttöliittymän välillä

Video: Ero abstraktin luokan ja käyttöliittymän välillä

Video: Ero abstraktin luokan ja käyttöliittymän välillä
Video: Nepal tarjoaa hyviä yhteistyömahdollisuuksia yrityksille ja järjestöille 2024, Marraskuu
Anonim

Abstraktiluokka vs. käyttöliittymä

Abstract class ja Interface ovat kaksi oliopohjaista rakennetta, joita löytyy monista olioohjelmointikielistä, kuten Java. Abstraktia luokkaa voidaan pitää tavallisen (konkreettisen) luokan abstraktina versiona, kun taas käyttöliittymää voidaan pitää keinona toteuttaa sopimus. Abstrakti luokka on luokka, jota ei voi alustaa, mutta jota voidaan laajentaa. Käyttöliittymä on tyyppi, joka muiden luokkien on otettava käyttöön. Javassa abstraktit luokat ilmoitetaan käyttämällä Abstract-avainsanaa, kun taas käyttöliittymäavainsanaa käytetään rajapinnan määrittämiseen.

Mikä on abstrakti luokka?

Yleensä abstrakteja luokkia, jotka tunnetaan myös nimellä Abstract Base Classes (ABC), ei voida instantoida (tämän luokan esiintymää ei voida luoda). Abstrakteilla luokilla on siis merkitystä vain, jos ohjelmointikieli tukee periytymistä (kyky luoda alaluokkia luokan laajentamisesta). Abstraktit luokat edustavat yleensä abstraktia käsitettä tai kokonaisuutta, joka on osittain toteutettu tai ei ollenkaan. Siksi abstraktit luokat toimivat pääluokina, joista alaluokat johdetaan, joten aliluokka jakaa yläluokan epätäydelliset ominaisuudet ja toimintoja voidaan lisätä niiden täydentämiseksi.

Abstraktit luokat voivat sisältää abstrakteja menetelmiä. Abstraktia luokkaa 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. Kaikki tämä tarkoittaa, että kun ohjelmoija nimeää luokan tiivistelmäksi, hän sanoo, että luokka on epätäydellinen ja siinä on elementtejä, jotka perivien alaluokkien on täydennettävä. Tämä on mukava tapa tehdä sopimus kahden ohjelmoijan välille, mikä yksinkertaistaa ohjelmistokehityksen tehtäviä. Ohjelmoijan, joka kirjoittaa perittävän koodin, on noudatettava menetelmän määritelmiä tarkasti (mutta tietysti hänellä voi olla oma toteutus).

Mikä on käyttöliittymä?

Rajapinta on abstrakti tyyppi, jota käytetään määrittelemään sopimus, joka tulee toteuttaa luokille, jotka toteuttavat kyseisen rajapinnan. Rajapinta-avainsanalla määritellään käyttöliittymä ja Implements-avainsanalla rajapinta toteutetaan luokan mukaan (Java-ohjelmointikielellä). Yleensä käyttöliittymä sisältää vain metodiallekirjoituksia ja vakiomäärityksiä. Jokaisen rajapinnan, joka toteuttaa tietyn rajapinnan, tulee toteuttaa kaikki rajapinnassa määritellyt menetelmät tai se tulee ilmoittaa abstraktiksi luokkaksi. Javassa objektiviittauksen tyyppi voidaan määritellä liitäntätyypiksi. Mutta objektin täytyy olla joko tyhjä tai sen tulee sisältää luokan objekti, joka toteuttaa kyseisen rajapinnan. Käyttämällä Java-avainsanaa Implements voit toteuttaa useita käyttöliittymiä yhteen luokkaan.

Mitä eroa on abstraktin luokan ja käyttöliittymän välillä?

Abstraktit luokat edustavat yleensä abstraktia käsitettä tai kokonaisuutta, joka on toteutettu osittain tai ei ollenkaan. Toisa alta rajapinta on abstrakti tyyppi, jota käytetään määrittämään sopimus, joka tulee toteuttaa luokittain. Abstraktit luokat tulee periä (tai laajentaa), kun taas rajapinnat tulisi toteuttaa. Abstraktit luokat voivat sisältää abstrakteja menetelmiä, kun taas käyttöliittymän tulee 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 se voi toteuttaa useita rajapintoja. Käyttöliittymä ei voi toteuttaa toista käyttöliittymää. Käyttöliittymä voi kuitenkin laajentaa luokkaa.

Suositeltava: