Rakenduste ja laienduste erinevus

Rakenduste ja laienduste erinevus
Rakenduste ja laienduste erinevus

Video: Rakenduste ja laienduste erinevus

Video: Rakenduste ja laienduste erinevus
Video: SCP-026 после школы Retention (Класс объекта: Евклид) 2024, November
Anonim

Järeldab vs laiendab

Implements and Extends on kaks Java programmeerimiskeeles leiduvat märksõna, mis pakuvad vahendit lisatud funktsioonide ülekandmiseks uude klassi. Märksõna Implements kasutatakse otseselt liidese juurutamiseks, samas kui Extends märksõna kasutatakse (super)klassist pärimiseks. Pange tähele, et pärimise ja liideste mõisted on olemas enamikus teistes objektorienteeritud programmeerimiskeeltes, nagu C ja VB. NET, kuid need pakuvad nende mõistete rakendamiseks erinevat süntaksit või märksõnu. See artikkel keskendub ainult Javas määratletud märksõnadele juurutab ja laiendab.

Laikendab

Extends märksõna kasutatakse pärimise kontseptsiooni rakendamiseks Java programmeerimiskeeles. Pärimine pakub sisuliselt koodi taaskasutamist, võimaldades laiendada olemasoleva klassi omadusi ja käitumist äsja määratletud klassi võrra. Kui uus alamklass (või tuletatud klass) laiendab ülemklassi (või ülemklassi), pärib see alamklass kõik superklassi atribuudid ja meetodid. Alamklass võib valikuliselt alistada vanemklassilt päritud käitumise (pakkuda meetoditele uut või laiendatud funktsionaalsust). Alamklass ei saa Javas mitut superklassi laiendada. Seetõttu ei saa te laiendusi kasutada mitme pärimise korral. Mitme pärandi saamiseks peate kasutama liideseid, nagu allpool selgitatud.

Tervised

Implements märksõna Java programmeerimiskeeles kasutatakse liidese juurutamiseks klassi poolt. Java liides on abstraktne tüüp, mida kasutatakse lepingu määramiseks, mida peaksid rakendama seda liidest rakendavad klassid. Tavaliselt sisaldab liides ainult meetodi allkirju ja konstantseid deklaratsioone. Iga liides, mis rakendab konkreetset liidest, peaks rakendama kõiki liideses määratletud meetodeid või tuleks deklareerida abstraktse klassina. Javas saab objektiviite tüübi määratleda liidese tüübina. Kuid see objekt peab olema null või sisaldama klassi objekti, mis seda konkreetset liidest rakendab. Kasutades Javas märksõna Implements, saate ühte klassi rakendada mitu liidest. Liides ei saa rakendada teist liidest. Liides võib aga klassi laiendada.

Erinevus rakenduste ja laiendamiste vahel

Kuigi Implements ja Extends on kaks märksõna, mis pakuvad Java programmeerimiskeeles klassile atribuutide ja käitumise pärimise mehhanismi, kasutatakse neid kahel erineval eesmärgil. Märksõna Implements kasutatakse klassi jaoks teatud liidese realiseerimiseks, samas kui Extends märksõna kasutatakse alamklassi jaoks, et laiendada superklassist. Kui klass rakendab liidest, peab see klass rakendama kõiki liideses määratletud meetodeid, kuid kui alamklass laiendab superklassi, võib see alistada põhiklassis sisalduvad meetodid või mitte. Lõpuks on veel üks oluline erinevus rakenduste ja laiendite vahel see, et klass võib rakendada mitut liidest, kuid see võib ulatuda ainult ühest Java superklassist. Üldiselt peetakse lisaseadmete (liideste) kasutamist soodsamaks võrreldes Extendsi (pärimise) kasutamisega mitmel põhjusel, nagu suurem paindlikkus ja võime minimeerida sidumist. Seetõttu eelistatakse praktikas liidesele programmeerimist põhiklassidest väljumisele.

Soovitan: