Java >> Java tutorial >  >> Tag >> extends

Hvad er forskellen mellem Extends og Implements i Java?

Søgeordene udvider og implementerer, begge bruges til at udføre arvekonceptet for objektorienteret programmering, men alligevel er der en subtil forskel mellem dem. Denne artikel om udvider vs implementeringer i Java hjælper dig med at forstå de store forskelle mellem disse søgeord.

De emner, der diskuteres i denne artikel, er:

  • udvider søgeord
  • implementerer søgeord
  • udvider vs. redskaber

For bedre at forstå forskellen mellem udvider og implementerer, skal du også lære og forstå forskellen mellem abstrakt klasse og grænseflade i Java.

udvider søgeord

Når en underklasse udvides en anden klasse, den tillader underklassen at arve (dvs. genbruge) og tilsidesætte kode defineret i supertypen. Enkelt sagt kan en nyoprettet klasse (underklasse) arve funktionerne i en eksisterende klasse (superklasse) ved at bruge extends nøgleordet. Det kan også tilsidesætte de metoder, der er defineret i en superklasse. En klasse kan aldrig udvide mere end én superklasse i Java. Her er et eksempelprogram, der demonstrerer abstrakt klasse:

package MyPackage;

class A {
	String s;
	A(String s1)
	{
		s = s1;
	}
	void display()
	{
		System.out.println(s);
	}

}

 class B extends A {
	String l;
	B(String s1, String s2)
	{
		super(s1);
		l = s2;
	}
	void display()
	{
		super.display();
		System.out.println(l);
	}

}

class ExtendsExample{
    public static void main(String args[]) {

    	A ob = new B("Welcome", "To Edureka");
    	ob.display();
    		
    	}
    }

Output: Velkommen
Til Edureka

Forklaring: I ovenstående kode kan du observere, at klasse B har udvidet klasse A, den har adgang til metoden display() og har tilsidesat metoden display( ) defineret i klasse A. Denne enorme kraft kommer ved at bruge extends nøgleordet.

implementerer søgeord

Når en klasse implementerer en grænseflade, skal den levere en implementering af alle metoder, der er erklæret inde i en grænseflade. Hvis klassen ikke ønsker at levere implementering, kan den erklære sig selv som en abstrakt klasse. Desuden kan en grænseflade aldrig implementere en anden grænseflade, da implementering betyder at definere metoderne, og grænsefladen har altid abstrakte metoder, så en grænseflade kan aldrig implementere en anden grænseflade. Her er et eksempelprogram, der demonstrerer abstrakt klasse:

package MyPackage;

interface XYZ{
	
	void display(String s);
	void show(int i);
}

class Demo implements XYZ{
	
	public void show(int i){
		System.out.println("integer value:" +i);
		}
	public void display(String s){
		System.out.println("string value:" +s);
	}
}

class ImplementExample {
	public static void main(String args[]) {
		
		XYZ d = new Demo();
		d.display("TechDifferences");
		d.show(2);

	}

}

Output:

string value:TechDifferences
integer value:2

I ovenstående kode kan du observere, at Demo-klassen implementerer to metoder, der er erklæret i grænsefladen XYZ.

Fra ovenstående indhold har du måske bemærket den vigtigste forskel mellem udvider og implementerer i Java. Lad os nu gå videre og liste andre forskelle frem.

udvider vs. redskaber

Tabellen nedenfor viser de vigtigste forskelle mellem søgeordene udvider og implementerer.

Sammenligningsfunktioner Udvider Implementer

Implementering

En klasse kan arve en anden klasse, eller en grænseflade kan arve andre grænseflader ved hjælp af et nøgleord extends

En klasse kan implementere en grænseflade ved hjælp af nøgleordsimplementer

Metode

Underklassen, der udvider en superklasse, kan eller kan ikke tilsidesætte alle metoderne i en superklasse

Klassen, der implementerer en grænseflade, skal implementere alle metoderne for denne grænseflade.

Klasse

En klasse kan kun udvide én superklasse.

En klasse kan implementere et hvilket som helst antal af en grænseflade på samme tid

Grænseflade

En grænseflade kan udvide et vilkårligt antal grænseflader

En grænseflade kan aldrig implementere nogen anden grænseflade

Nå, nu er du de vigtigste forskelle mellem udvider og implementerer i Java

Dette bringer os til slutningen af ​​denne udvider vs implementerer i Java-artiklen. Vi gennemgik de store forskelle mellem udvider og implementerer søgeord. For at konkludere, bruges begge til at udføre Javas arvekoncept, men på forskellige måder.

Sørg for, at du øver dig så meget som muligt, og vend din oplevelse tilbage.

Tjek Java-uddannelsen af Edureka, en betroet online læringsvirksomhed med et netværk af mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et udover dette java-interviewspørgsmål, kommer vi med et pensum, der er designet til studerende og professionelle, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det venligst i kommentarafsnittet i denne ‘udvider vs implementerer i Java’ og vi vil vende tilbage til dig så hurtigt som muligt.


Java tag