Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp „Java“ išplėsta ir įgyvendina raktinius žodžius

Raktiniai žodžiai išplečiami ir naudojami, kad paveldėtų jau sukurto pagrindinio bloko ypatybes naujai sukurtame vaikų bloke. Naudojant išplėstinį raktinį žodį, naujai sukurta klasė (poklasis) gali paveldėti esamos klasės ypatybes (superklasė). Naudojant įrankių raktinį žodį, naujai sukurta klasė gali įgyvendinti visus sąsajos metodus. Pagrindinis skirtumas tarp raktinių žodžių plinta ir įgyvendinamas yra ta, kad klasė praplečia kitą klasę, kad paveldėtų visus jos narius, o klasė įgyvendina sąsają, kad paveldėtų visus jos metodus ir juos įgyvendintų pagal savo reikalavimus. Yra keletas kitų skirtumų tarp raktinių žodžių, išplėstų ir įgyvendintų žemiau pateiktoje palyginimo lentelėje.

Palyginimo diagramos

Palyginimo pagrindasPratęsiamaPriemonės
PagrindinisIšplėstinis raktinis žodis naudojamas kuriant poklasį, naudojant super klasės funkcijas.Įrenginio raktinis žodis naudojamas sąsajai įgyvendinti
MetodaiIšplėsti raktinis žodis negali ignoruoti visų super klasės metodų.Priemonės raktinis žodis turi įgyvendinti visus įdiegtos sąsajos metodus.
KlasėKlasė gali išplėsti tik vieną super klasę.Klasė gali įgyvendinti kelias sąsajas.
SąsajaSąsaja gali išplėsti daugiau nei vieną sąsają.Sąsaja negali įgyvendinti kitos sąsajos.

Išplėstinio raktinio žodžio apibrėžimas

Paveldėjimas, kuris yra svarbi objekto orientavimo programavimo koncepcija, pasiekiamas, kai poklasis pratęsia dar vieną klasę. Subklasėje leidžiama išplėsti tik vieną superklasę. Klasė niekada negali išplėsti daugiau nei vienos super klasės „Java“. Kai klasė praplečia kitą klasę, ji gali nepaisyti superklasės apibrėžtų metodų. Suprasime, kad raktinis žodis apima pavyzdį.

 A klasė {String s; A (eilutė s1) {s = s1; } // rodyti eilutės void display () {System.out.println (+ s); }} B klasė praplečia A {String i; B (eilutė s1, eilutė i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * rodomas () klasė A, kuriam iškviestas. * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = new B (Tech, skirtumai); ob.display (); / * rodomas B klasės, kuriam * /}} / * išvestas * / Tech skirtumai 

Anksčiau pateiktame kode galite pastebėti, kad B klasė išplėtė A klasę ir viršijo A klasėje apibrėžtą metodų rodymą (). Panašiai sąsaja vienu metu gali išplėsti daugiau nei vieną sąsają. Kadangi sąsaja neturi įgyvendinti jokio išplėstinės sąsajos metodo, leidžiama paveldėti kelis sąsajas vienu metu.

Įrenginio raktinio žodžio apibrėžimas

Naudojant raktinius žodžius, klasė paveldi visus sąsajos metodus. Kai klasė įgyvendina sąsają, ta klasė turi įgyvendinti visus įdiegtos sąsajos metodus. Sąsaja niekada negali įdiegti kitos sąsajos, nes įrankių raktinis žodis žada įgyvendinti metodus, bet sąsaja niekada neįgyvendina metodų, todėl sąsaja neįmanoma įgyvendinti kitos sąsajos. Suprasime, kaip įgyvendiname raktinį žodį, naudojant pavyzdį.

 sąsajos eilutės {void display (String s); } sąsajos sveikasis skaičius {void show (int i); } klasės Demo įgyvendina eilutes, sveikas skaičius {void show (int i) {System.Out.Println ("sveikasis skaičius:" + i); } void display (String s) {System.Out.Println („eilutės vertė:“ + s); }} klasė Demo_main {public static void main (eilutė args []) {Demo d = nauja demo (); d.display („TechDifferences“); d.show (2); }} / * išėjimas * / techniniai skirtumai 2 

Kaip ir aukščiau pateiktame kode, matote, kad klasės demonstracijoje įdiegtos dvi sąsajų eilutės ir sveikasis skaičius, ir įdiegti metodai, deklaruoti tiek sąsajose, kuriose rodoma (), tiek rodoma ().

Pagrindiniai skirtumai tarp išplėtimų ir padargų

  1. Klasė gali paveldėti kitą klasę, arba sąsaja paveldi kitas sąsajas naudojant raktinį žodį, o klasė gali įdiegti sąsajas naudodama raktinius žodžius.
  2. Pogrupis, kuris praplečia superklasę, gali arba negali viršyti visų superklasės metodų. Kita vertus, sąsają diegianti klasė turi apibrėžti / įgyvendinti visus šios sąsajos metodus.
  3. Klasė vienu metu gali įdiegti bet kokį sąsajos numerį. Kita vertus, klasė gali išplėsti tik vieną super klasę.
  4. Sąsaja gali išplėsti bet kokį sąsajų skaičių, tačiau sąsaja niekada negali įgyvendinti jokios kitos sąsajos, nes įgyvendinimo priemonės, apibrėžiančios metodus ir sąsają, visada turi abstrakčių metodų, todėl sąsaja niekada negali įgyvendinti kitos sąsajos.

Išvada:

Baigdamas diskusiją sakau, kad sąsajos įgyvendinimas daro kodą lankstesniu nei klasės pratęsimas. Kadangi ji neleidžia apriboti „Java“ tik vienos super klasės paveldėjimo. Naudojant įrankių raktinį žodį, klasė gali paveldėti daugiau nei vienos sąsajos ypatybes.

Top