Abstraktin Luokan Ja Perinnön Ero

Abstraktin Luokan Ja Perinnön Ero
Abstraktin Luokan Ja Perinnön Ero

Video: Abstraktin Luokan Ja Perinnön Ero

Video: Abstraktin Luokan Ja Perinnön Ero
Video: Elävätkö murteet? Webinaari 18.3.2021 2024, Marraskuu
Anonim

Abstrakti luokka vs. perintö

Abstrakti luokka ja perintö ovat kaksi tärkeää olio-käsitteitä, joita löytyy monista olio-ohjelmointikielistä, kuten Java. Abstraktia luokkaa voidaan pitää abstraktina versiona tavallisesta (konkreettisesta) luokasta, kun taas Perintö antaa uusien luokkien laajentaa muita luokkia. Abstrakti luokka on luokka, jota ei voida alustaa, mutta jota voidaan pidentää. Joten tiivistelmäluokilla on merkitystä vain, jos ohjelmointikieli tukee perintöä. Javassa abstraktit luokat ilmoitetaan käyttämällä abstraktia avainsanaa, kun taas Extends-avainsanaa käytetään perimään (super) luokasta.

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 perintö?

Perintö on olio-suuntautunut käsite, jonka avulla uudet luokat voivat laajentaa muita luokkia. Extends-avainsanaa käytetään perintökäsitteen toteuttamiseen Java-ohjelmointikielessä. Perintö tarjoaa olennaisesti koodin uudelleenkäytön sallimalla laajentaa olemassa olevan luokan ominaisuuksia ja käyttäytymistä uudella määritetyllä luokalla. Kun uusi alaluokka (tai johdettu luokka) laajentaa superluokkaa (tai pääluokkaa), aliluokka perii kaikki superluokan määritteet ja menetelmät. Alaluokka voi valinnaisesti korvata käyttäytymisen (tarjota menetelmille uuden tai laajennetun toiminnallisuuden), joka on peritty vanhemmalta luokalta. Tyypillisesti A-alaluokka ei voi laajentaa useita superluokkia (esim. Java). Siksi et voi käyttää pidennyksiä useisiin perintöihin. Useiden perintöjen saamiseksi sinun on käytettävä rajapintoja.

Mitä eroa on abstraktilla luokalla ja perinnöllä?

Abstraktit luokat edustavat yleensä abstraktia konseptia tai kokonaisuutta, jolla on osittainen tai olematon toteutus. Perintö antaa uusien luokkien laajentaa muita luokkia. Koska tiivistelmäluokkia ei voida instantisoida, abstraktiluokkien käyttämiseen on käytettävä perintökäsitettä. Muuten abstraktilla luokalla ei ole käyttöä. Abstraktit luokat voivat sisältää abstrakteja menetelmiä, ja kun luokkaa laajennetaan, kaikki menetelmät (abstraktit ja konkreettiset) peritään. Peritty luokka voi toteuttaa minkä tahansa tai kaikki menetelmät. Jos kaikkia tiivistelmämenetelmiä ei ole otettu käyttöön, tästä luokasta tulee myös tiivistelmäluokka. Luokka ei voi periä useammasta kuin yhdestä tiivistelmäluokasta (tämä ei ole abstraktien luokkien ominaisuus sinänsä, vaan perintörajoituksia).

Suositeltava: