Suositeltava, 2024

Toimituksen Valinta

Ero laajentaa ja toteuttaa avainsanoja Java: ssa

Avainsanoja laajennetaan ja niitä käytetään, jotta peritään uudestaan ​​muodostetun lastilohkon jo olemassa olevan emoyksikön ominaisuudet. Laajentavan avainsanan avulla äskettäin luotu luokka (alaluokka) voi periä olemassa olevan luokan ominaisuudet (superluokka). Käyttämällä avainsanoja äskettäin luotu luokka voi toteuttaa kaikki käyttöliittymän menetelmät. Ensisijainen ero avainsanojen välillä ulottuu ja toteuttaa on, että luokka laajentaa toisen luokan perimään kaikki sen jäsenet, kun taas luokka toteuttaa käyttöliittymän, joka perii kaikki sen menetelmät ja toteuttaa ne sen vaatimusten mukaisesti. Avainsanojen välillä on joitakin muita eroja, joita laajennetaan ja toteutetaan alla olevassa vertailukaaviossa.

Vertailukartat

Vertailun perusteetulottuuImplements
perustiedotLaajennettua avainsanaa käytetään luomaan alaluokka superluokan ominaisuuksien avulla.Käytössä olevaa avainsanaa käytetään rajapinnan toteuttamiseen
menetelmätLaajennettu avainsana ei voi ohittaa kaikkia superluokan menetelmiä.Avainsanan on toteutettava kaikki toteutetun käyttöliittymän menetelmät.
luokkaLuokka 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ä

  1. 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.
  2. 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.
  3. Luokka voi toteuttaa minkä tahansa määrän rajapintaa samanaikaisesti. Toisaalta luokka voi laajentaa vain yhden superluokan.
  4. 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.

Top