Sammenligningskort
Grundlag for sammenligning | udvider | redskaber |
---|---|---|
Grundlæggende | Det udvidede søgeord bruges til at oprette en underklasse med funktioner i en superklasse. | Udførelsesordet søgeord bruges til implementering af en grænseflade |
Metoder | Det udvidede søgeord overtræder muligvis ikke alle metoder i en superklasse. | Redskaberne til nøgleordet skal implementere alle metoderne i en implementeret grænseflade. |
klasse | En klasse kan kun udvide en superklasse. | En klasse kan implementere flere interfaces. |
grænseflade | En grænseflade kan strække mere end en grænseflade. | En grænseflade kan ikke implementere en anden grænseflade. |
Definition af udvidelse af søgeord
Arv er et vigtigt koncept i objektorienteret programmering, når en underklasse udvider en anden superklasse. En underklasse må kun udvide en superklasse. En klasse kan aldrig udvide mere end en superklasse i Java. Når en klasse udvider en anden klasse, kan den tilsidesætte de metoder, der er defineret i en superklasse. Lad os forstå, at søgeordet udvides ved hjælp af et eksempel.
klasse A {streng s; A (streng s1) {s = s1; } // visningsstreng tomt display () {System.out.println (+ s); }} klasse B udvider A {String i; B (streng s1, streng i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * display () af klasse A påberåbt. * / System.out.println (+ i); }} klasse Overstyr {public static void main (String args []) {B ob = ny B (Tech, Forskelle); ob.display (); / * visning af klasse B påberåbt * /}} / * udsætte * / Tech Forskelle
I ovenstående kode kan du bemærke, at klasse B har udvidet klasse A og har tilsidesat metodedisplayet () defineret i klasse A. På samme måde kan en grænseflade udvide mere end et interface ad gangen. Som interface behøver ikke at implementere nogen metode til det udvidede interface, og det er derfor tilladt at arve flere grænseflader ad gangen.
Definition af redskaber nøgleord
Ved hjælp af nøgleordet implementerer en klasse alle metoderne i en grænseflade. Når en klasse implementerer en grænseflade, skal denne klasse implementere alle metoder til implementeret interface. En grænseflade kan aldrig implementere en anden grænseflade, da implementerer søgeord løfter implementering af metoderne, men en grænseflade implementerer aldrig metoder i den, så det er umuligt for en grænseflade at implementere en anden grænseflade. Lad os forstå implementerer søgeord ved hjælp af et eksempel.
interface strings {void display (String s); } interface integer {void show (int i); } klasse Demo implementerer strenge, heltal {void show (int i) {System.Out.Println ("heltal værdi:" + i); } void display (String s) {System.Out.Println ("strengværdi:" + s); }} klasse Demo_main {public static void main (string args []) {Demo d = ny demo (); d.display ( "TechDifferences"); d.show (2); }} / * output * / TechDifferences 2
Som i koden ovenfor kan du se, at klassedemoen implementerer to grænseflader og heltal og har implementeret de metoder, der er angivet i både de grænseflader, der vises () og viser ().
Nøgleforskelle Mellem udstrækker og redskaber
- En klasse kan arve en anden klasse, eller en grænseflade arver andre grænseflader ved hjælp af et søgeord udvides, mens en klasse kan implementere grænseflader ved hjælp af et søgeord implementer.
- En underklasse, der udvider en superklasse, kan eller måske ikke tilsidesætte alle metoderne i en superklasse. På den anden side skal en klasse, der implementerer en grænseflade, definere / implementere alle metoderne i den grænseflade.
- En klasse kan implementere et hvilket som helst antal af en grænseflade på samme tid. På den anden side kan en klasse udvide kun en superklasse.
- En grænseflade kan udvide ethvert antal grænseflader, men en grænseflade kan aldrig implementere nogen anden grænseflade som implementeringsmidler, der definerer metoderne og grænsefladen har altid abstrakte metoder, så en grænseflade kan aldrig implementere en anden grænseflade.
Konklusion:
Jeg konkluderer diskussionen, at implementering af en grænseflade gør koden mere fleksibel end at udvide en klasse. Da det undgår begrænsningen af at arve kun en superklasse i Java. Ved hjælp af redskaber, kan en klasse arve funktioner i flere grænseflader.