Soovitatav, 2021

Toimetaja Valik

Erinevus laiendab ja rakendab Java-märksõnu

Märksõnad laienevad ja rakendatakse, et pärida juba loodud vanembloki funktsioonid äsja loodud lasteplokis. Kasutades märksõna laiendamist, võib äsja loodud klass (alamklass) pärida olemasoleva klassi omadusi (superklass). Rakenduse märksõna abil saab vastloodud klass rakendada kõiki liidese meetodeid. Esmane erinevus märksõnade vahel laieneb ja rakendub on see, et klass laiendab teist klassi, et pärida kõik selle liikmed, samal ajal kui klass rakendab liidese, et pärida kõik selle meetodid ja rakendada neid vastavalt oma nõudmistele. Mõningate teiste märksõnade vahel on erinevusi, mida laiendatakse ja rakendatakse allpool toodud võrdluskaardil.

Võrdluskaardid

Võrdluse alusLaiendabRakendused
PõhilineLaienduse märksõna abil luuakse alamklass, mis kasutab superklassi funktsioone.Rakenduse märksõna kasutatakse liidese rakendamiseks
MeetodidLaiendav märksõna ei pruugi ületada kõiki super klassi meetodeid.Rakenduse märksõna peab rakendama kõiki rakendatava liidese meetodeid.
KlassKlass võib laiendada ainult ühte superklassi.Klass võib rakendada mitmeid interafaale.
LiidesLiides võib laiendada rohkem kui ühte liidest.Liides ei saa rakendada teist liidest.

Märksõna laiendamine

Pärand, mis on objektide orienteeritud programmeerimise oluline mõiste, saavutatakse, kui alaklass laiendab teist superklassi. Alamklassil lubatakse laiendada ainult ühte superklassi. Klass ei saa kunagi Java-s rohkem kui ühte superklassi laiendada. Kui klass laiendab teist klassi, võib see ületada superklassis määratletud meetodeid. Mõistagem, et märksõna ulatub näite abiga.

 klass A {String s; A (String s1) {s = s1; } // kuvab stringi void kuva () {System.out.println (+ s); }} klass B laiendab A {String i; B (String s1, String i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * kuvatud klassi A () kuvatud. * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = new B (Tech, erinevused); ob.display (); / * klassi B kuvamine * /}} / * välja * / tehnilised erinevused 

Ülaltoodud koodis võib täheldada, et klass B on laiendanud A-klassi ja on ületanud klassis A defineeritud meetodi näidiku. Samamoodi võib liides korraga korrata rohkem kui ühte liidest. Kuna liides ei pea rakendama laiendatud liidese ühtegi meetodit, siis on lubatud korraga korraga mitut liidest.

Rakenduse märksõna määratlus

Märksõna rakenduste abil pärineb klass kõik liidese meetodid. Kui klass rakendab liidese, peab see klass rakendama kõiki rakendatava liidese meetodeid. Liides ei saa kunagi rakendada teist liidest, kuna rakendussõna lubab meetodite rakendamist, kuid liides ei rakenda selles kunagi meetodeid, mistõttu liides ei ole võimeline rakendama teist liidest. Mõistagem näiteks näite abil rakendussõna.

 liidese stringid {void display (String s); } liidese täisarv {void show (int i); } klass Demo rakendab stringe, täisarv {void show (int i) {System.Out.Println ("täisarv väärtus" + i); } void display (String s) {System.Out.Println ("string väärtus:" + s); }} klass Demo_main {public static void main (string args []) {Demo d = uus demo (); d.display ("TechDifferences"); d.show (2); }} / * väljund * / tehnilised erinevused 2 

Nagu ülaltoodud koodis, näete, et klassi demo rakendab kahte liidese stringi ja täisarvu ning on rakendanud meetodid, mis on deklareeritud nii liideses, kus kuvatakse () kui ka näitavad ().

Peamised erinevused laienduste ja rakenduste vahel

  1. Klass võib pärida teise klassi või liides pärsib teisi märksõnu kasutavaid liideseid, samal ajal kui klass võib rakendada rakendusi märksõna rakenduste abil.
  2. Alamklass, mis laiendab superklassi, võib või ei pruugi ületada kõiki superklassi meetodeid. Teisest küljest peab liidest rakendav klass määratlema / rakendama kõiki selle liidese meetodeid.
  3. Klass võib samaaegselt rakendada mis tahes arvu liideseid. Teisest küljest võib klass laiendada ainult ühte superklassi.
  4. Liides võib laiendada mis tahes arvu liideseid, kuid liides ei saa kunagi rakendada ühtegi muud liidest, kuna meetoditel ja liidesel defineerivad rakendusvahendid on alati abstraktsed, nii et liides ei saa kunagi rakendada teist liidest.

Järeldus:

Lõpetan arutelu, milles öeldakse, et liidese rakendamine muudab koodi paindlikumaks kui klassi laiendamine. Kuna see väldib piirangut ainult ühe super klassi pärimisele Java. Kasutades rakenduse märksõna, võib klass pärida rohkem kui ühe liidese omadusi.

Top