Palyginimo diagramos
Palyginimo pagrindas | Pratęsiama | Priemonės |
---|---|---|
Pagrindinis | Išplėstinis raktinis žodis naudojamas kuriant poklasį, naudojant super klasės funkcijas. | Įrenginio raktinis žodis naudojamas sąsajai įgyvendinti |
Metodai | Iš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ąsaja | Są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ų
- 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.
- 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.
- Klasė vienu metu gali įdiegti bet kokį sąsajos numerį. Kita vertus, klasė gali išplėsti tik vieną super klasę.
- 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.