Vertailukartat
Vertailun perusteet | ulottuu | Implements |
---|---|---|
perustiedot | Laajennettua avainsanaa käytetään luomaan alaluokka superluokan ominaisuuksien avulla. | Käytössä olevaa avainsanaa käytetään rajapinnan toteuttamiseen |
menetelmät | Laajennettu avainsana ei voi ohittaa kaikkia superluokan menetelmiä. | Avainsanan on toteutettava kaikki toteutetun käyttöliittymän menetelmät. |
luokka | Luokka voi laajentaa vain yhden superluokan. | Luokka voi toteuttaa useita rajapintoja. |
liitäntä | Liitäntä voi laajentaa useampaa kuin yhtä rajapintaa. | Liitäntä ei voi toteuttaa toista liitäntää. |
Määritelmä laajentaa avainsanaa
Perintö on tärkeä käsite Object Oriented Programmingissa, kun alaluokka ulottuu toiseen luokkaan. Alaluokka saa laajentaa vain yhden superklassin. Luokka ei voi koskaan laajentaa useampaa kuin yhtä superluokkaa Java: ssa. Kun luokka ulottuu toiseen luokkaan, se voi ohittaa superklassissa määritellyt menetelmät. Ymmärretään, että avainsana ulottuu esimerkin avulla.
luokka A {String s; A (merkkijono s1) {s = s1; } // näyttää merkkijonon tyhjänäyttö () {System.out.println (+ s); }} luokka B ulottuu A {String i; B (merkkijono s1, merkkijono i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * -näyttö () luokasta A, jota kutsutaan. * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = new B (Tech, erot); ob.display (); / * luokan B kutsuminen * /}} / * ulos * / Tech-erot
Yllä olevassa koodissa voit havaita, että luokka B on laajentanut A-luokkaa ja ohittanut luokan A määritetyn näytön (). Samalla tavalla liitäntä voi laajentaa useampaa kuin yhtä rajapintaa kerrallaan. Koska rajapinnan ei tarvitse toteuttaa mitään laajennetun käyttöliittymän menetelmää, on sallittua periä useita rajapintoja kerrallaan.
Määritelmä työkalun avainsanalle
Avainsanatyökalujen avulla luokka perii kaikki käyttöliittymän menetelmät. Kun luokka toteuttaa rajapinnan, kyseisen luokan on toteutettava kaikki toteutetun käyttöliittymän menetelmät. Liitäntä ei voi koskaan toteuttaa toista käyttöliittymää, koska työkalu avainsanalla lupaa menetelmien toteuttamista, mutta rajapinta ei koskaan toteuta menetelmiä siinä, joten rajapinta ei voi toteuttaa toista liitäntää. Ymmärtäkää, että toteutamme avainsanan esimerkin avulla.
käyttöliittymäsarjat {void display (String s); } rajapinnan kokonaisluku {void show (int i); } luokka Demo toteuttaa merkkijonoja, kokonaisluku {void show (int i) {System.Out.Println ("kokonaisluku:" + i); } void display (String s) {System.Out.Println ("merkkijonon arvo:" + s); }} luokka Demo_main {public static void main (string args []) {Demo d = uusi demo (); d.display ( "TechDifferences"); d.show (2); }} / * lähtö * / TechDifferences 2
Kuten yllä olevassa koodissa, näet, että luokan demo toteuttaa kaksi rajapintaketjua ja kokonaislukua ja on toteuttanut molemmissa rajapinnoissa, jotka ovat näytössä () ja osoittamassa ().
Keskeiset erot laajennusten ja työkalujen välillä
- Luokka voi periä toisen luokan tai käyttöliittymä perii muita rajapintoja käyttämällä avainsanaa, kun taas luokka voi toteuttaa rajapintoja käyttämällä avainsanatyökaluja.
- Alaluokka, joka ulottuu superluokkaan, voi ohittaa tai välttää kaikki superklassin menetelmät. Toisaalta rajapintaa toteuttavan luokan on määriteltävä / toteutettava kaikki kyseisen rajapinnan menetelmät.
- Luokka voi toteuttaa minkä tahansa määrän rajapintaa samanaikaisesti. Toisaalta luokka voi laajentaa vain yhden superluokan.
- Liitäntä voi laajentaa minkä tahansa määrän rajapintoja, mutta rajapinta ei voi koskaan toteuttaa mitään muuta rajapintaa, koska menetelmillä ja rajapinnalla määrittelevillä toteutusvälineillä on aina abstrakteja menetelmiä, joten liitäntä ei voi koskaan toteuttaa toista liitäntää.
johtopäätös:
Päätän keskustelun, jossa sanotaan, että käyttöliittymän toteuttaminen tekee koodista joustavamman kuin luokan laajentaminen. Koska se estää vain yhden superluokan perimisen rajoituksen Java: ssa. Käyttämällä avainsanoja luokka voi periä useamman kuin yhden rajapinnan ominaisuuksia.