Toteutus- ja laajennusero

Toteutus- ja laajennusero
Toteutus- ja laajennusero

Video: Toteutus- ja laajennusero

Video: Toteutus- ja laajennusero
Video: ROBIN KOULUSSA?! #shorts 2024, Heinäkuu
Anonim

Toteuttaa vs. laajentaa

Implements and Extends ovat kaksi Java-ohjelmointikielestä löytyvää avainsanaa, jotka mahdollistavat lisätoimintojen siirtämisen uuteen luokkaan. Implements-avainsanaa käytetään nimenomaan käyttöliittymän toteuttamiseen, kun taas Extends-avainsanaa käytetään (super)luokasta periytymiseen. Huomaa, että periytymisen ja rajapintojen käsitteet ovat läsnä useimmissa muissa olioohjelmointikielissä, kuten C ja VB. NET, mutta ne tarjoavat eri syntaksia tai avainsanoja näiden käsitteiden soveltamiseen. Tämä artikkeli keskittyy vain toteuttaa ja laajentaa Javassa määritettyjä avainsanoja.

Jatkee

Extends-avainsanaa käytetään perinnän käsitteen toteuttamiseen Java-ohjelmointikielessä. Periytys mahdollistaa koodin uudelleenkäytön mahdollistamalla olemassa olevan luokan ominaisuuksien ja toiminnan laajentamisen äskettäin määritellyllä luokalla. Kun uusi alaluokka (tai johdettu luokka) laajentaa superluokkaa (tai emoluokkaa), tämä alaluokka perii kaikki superluokan attribuutit ja menetelmät. Alaluokka voi valinnaisesti ohittaa emoluok alta perityn toiminnan (tarjoaa uusia tai laajennettuja toimintoja menetelmille). Alaluokka ei voi laajentaa useita superluokkia Javassa. Siksi et voi käyttää laajennuksia moniperinnössä. Jotta voit saada useita perintöjä, sinun on käytettävä liitäntöjä alla kuvatulla tavalla.

Laitteet

Implements-avainsana Java-ohjelmointikielellä käytetään rajapinnan toteuttamiseen luokan toimesta. Java-rajapinta on abstrakti tyyppi, jota käytetään määrittelemään sopimus, joka tulee toteuttaa luokille, jotka toteuttavat kyseisen rajapinnan. 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 rajapintoja yhteen luokkaan. Käyttöliittymä ei voi toteuttaa toista käyttöliittymää. Käyttöliittymä voi kuitenkin laajentaa luokkaa.

Erot toteuttaa ja laajentaa

Vaikka Implements ja Extends ovat kaksi avainsanaa, jotka tarjoavat mekanismin attribuuttien ja käyttäytymisen perimiseksi luokkaan Java-ohjelmointikielellä, mutta niitä käytetään kahteen eri tarkoitukseen. Implements-avainsanaa käytetään luokassa tietyn käyttöliittymän toteuttamiseksi, kun taas Extends-avainsanaa käytetään alaluokalle, joka ulottuu superluokasta. Kun luokka toteuttaa rajapinnan, kyseisen luokan on toteutettava kaikki rajapinnassa määritellyt menetelmät, mutta kun alaluokka laajentaa superluokkaa, se voi ohittaa yläluokkaan sisältyvät menetelmät tai olla ohittamatta. Lopuksi toinen keskeinen ero Implements- ja Extendsin välillä on, että luokka voi toteuttaa useita rajapintoja, mutta se voi ulottua vain yhdestä Java-superluokasta. Yleisesti ottaen työkoneiden (rajapintojen) käyttöä pidetään edullisempana Extendin (perinnön) käyttöön verrattuna useista syistä, kuten suuremmasta joustavuudesta ja kyvystä minimoida kytkentä. Siksi käytännössä ohjelmointi käyttöliittymään on parempi kuin perusluokista laajentaminen.