Toteuttaa vs Laajentaa
Toteutukset ja Laajennukset ovat Java-ohjelmointikielellä löydetyt kaksi avainsanaa, jotka tarjoavat keinon siirtää lisätty toiminnallisuus uuteen luokkaan. Toteutusten avainsanaa käytetään nimenomaisesti käyttöliittymän toteuttamiseen, kun taas Laajennetaan-avainsanaa käytetään perimiseksi (super) luokasta. Huomaa, että perimäkäsitteet ja rajapinnat ovat läsnä useimmissa muissa olio-ohjelmointikielissä, kuten C # ja VB.NET, mutta ne tarjoavat erilaisia syntaksia tai avainsanoja näiden käsitteiden soveltamiseksi. Tämä artikkeli keskittyy vain Java-ohjelmistoon määriteltyihin toteutusvälineisiin ja laajennuksiin.
ulottuu
Laajentaa avainsanaa käytetään perimän käsitteen toteuttamiseen Java-ohjelmointikielellä. Perintö tarjoaa käytännössä koodin uudelleenkäytön sallimalla olemassa olevan luokan ominaisuuksien ja käyttäytymisen laajentamisen vasta määritellyllä luokalla. Kun uusi alaluokka (tai johdettu luokka) laajentaa superluokan (tai yläluokan), tämä alaluokka perii kaikki superluokan ominaisuudet ja menetelmät. Alaluokka voi valinnaisesti ohittaa vanhemmaluokalta perimän käyttäytymisen (tarjota menetelmille uuden tai laajennetun toiminnallisuuden). Alaluokka ei voi laajentaa useita Java-superluokkia. Siksi et voi käyttää laajennuksia useaan perintöön. Useita perimisiä varten on käytettävä rajapintoja alla selitetyllä tavalla.
Implements
Toteuttaa avainsanan Java-ohjelmointikielellä käytetään rajapinnan toteuttamiseen luokassa. Java-käyttöliittymä on abstrakti tyyppi, jota käytetään määrittelemään sopimus, joka olisi toteutettava luokan toimesta, jotka toteuttavat kyseisen rajapinnan. Yleensä käyttöliittymä sisältää vain menetelmä-allekirjoituksia ja vakioilmoituksia. Jokaisen rajapinnan, joka toteuttaa tietyn rajapinnan, olisi toteutettava kaikki rajapinnassa määritellyt menetelmät tai ne olisi julistettava abstraktiksi luokkaksi. Java-järjestelmässä kohdeviittauksen tyyppi voidaan määritellä rajapintatyypiksi. Mutta kyseisen objektin on joko oltava tyhjä tai siinä tulisi olla luokan objekti, joka toteuttaa kyseisen rajapinnan. Java-sovelluksen Implements-avainsanan avulla voit toteuttaa useita käyttöliittymiä samaan luokkaan. Rajapinta ei voi toteuttaa toista rajapinta. Rajapinta voi kuitenkin pidentää luokkaa.
Ero toteutusten ja laajennusten välillä
Vaikka Toteutukset ja Laajennukset ovat kaksi avainsanaa, jotka tarjoavat mekanismin ominaisuuksien ja käyttäytymisen perimiseksi luokalle Java-ohjelmointikielellä, niitä käytetään kahteen eri tarkoitukseen. Toteutuksen avainsanaa käytetään luokassa tietyn käyttöliittymän toteuttamiseen, kun taas Laajennetaan-avainsanaa käytetään alaluokassa, joka ulottuu superluokasta. Kun luokka toteuttaa rajapinnan, kyseisen luokan on toteutettava kaikki rajapinnassa määritellyt menetelmät, mutta kun alaluokka laajentaa superluokkaa, se voi olla ohittamatta pääluokkaan sisältyviä menetelmiä. Lopuksi, toinen tärkeä ero toteutusten ja laajennusten välillä on, että luokka voi toteuttaa useita rajapintoja, mutta se voi ulottua vain yhdestä Java-superluokasta. Laitteiden (rajapintojen) käyttöä pidetään yleensä edullisempana kuin laajennusten (perintö) käyttöä monista syistä, kuten suuremmasta joustavuudesta ja kyvystä minimoida kytkentä. Siksi käytännössä ohjelmointi käyttöliittymälle on edullista kuin laajentaminen perusluokista.