Skillnaden mellan arv och gränssnitt i Java

Innehållsförteckning:

Skillnaden mellan arv och gränssnitt i Java
Skillnaden mellan arv och gränssnitt i Java

Video: Skillnaden mellan arv och gränssnitt i Java

Video: Skillnaden mellan arv och gränssnitt i Java
Video: Урок Java 164: Local classes 2024, Juli
Anonim

Key Difference – Arv kontra gränssnitt i Java

Java är ett programmeringsspråk utvecklat av Sun Microsystems. Java kan användas för att utveckla olika applikationer. Det är ett multiparadigmspråk som stöder objektorienterad, strukturerad etc. Den största fördelen med Java är att den stöder objektorienterad programmering (OOP). Programmeraren kan skapa klasser och objekt. Det finns fyra pelare i OOP. De är arv, polymorfism, abstraktion och inkapsling. Arv och gränssnitt är relaterade till OOP. Den viktigaste skillnaden mellan arv och gränssnitt är att arv är att härleda nya klasser från befintliga klasser och ett gränssnitt är att implementera abstrakta klasser och multipelt arv.

Vad är arv i Java?

Arv kan uppnå kodåteranvändbarhet. Arv hjälper till att återanvända attribut och metoder för en befintlig klass. Mekanismen för att härleda ny klass med hjälp av gammal klass kallas arv. Den gamla klassen är känd som föräldraklass eller superklass. Den härledda klassen kallas barnklass eller underklass.

Syntaxen för Java-arv är följande.

class subclass_name utökar superclass_name {

variabel deklaration;

metoddeklaration;

}

Arvskonceptet kan förklaras med följande exempel. Antag att det finns en klass som heter A enligt följande.

public klass A{

public void summa(){

System.out.println(“Sum”);

}

}

Om vi vill lägga till en ny metod utan att ändra den befintliga klassen kan vi göra det enligt följande.

public klass B{

public void sub(){

System.out.println(“Sub”);

}

}

Programmeraren kan använda arv för att använda klass A summa().

public klass B förlänger klass A{

public void sub(){

System.out.println(“Sub”);

}

}

I huvudfunktionen är det möjligt att skapa ett objekt av B och anropa sub(), som tillhör klass B och sum(), som tillhör klass A med hjälp av arv.

public static void main(String args){

B obj=new B();

obj.sub();

obj.sum();

}

Det finns olika typer av arv. De är enkelarv, multipelarv, flernivåarv och hierarkiskt arv. I enkelarv finns det en basklass och en härledd klass. I flernivåarv finns det tre klasser nämligen basklass, mellanklass och härledd klass. Den mellanliggande klassen ärver från basklassen och den härledda klassen ärver från den mellanliggande klassen. I hierarkiskt arv finns det en basklass och många härledda klasser. Det finns en speciell typ som kallas Hybrid arv. Det är en kombination av två eller flera typer av arv.

Skillnaden mellan arv och gränssnitt i Java
Skillnaden mellan arv och gränssnitt i Java

Figur 01: Arv

I multipla arv finns det många basklasser och en härledd klass. Antag att klass A och B är basklasserna. Klass C är den härledda klassen. Om både A- och B-klasserna har samma metod och programmeraren anropar den metoden från den härledda klassen, kommer det att orsaka ett tvetydighetsproblem. Att ärva två klasser kan orsaka ett kompileringsfel. Därför stöds inte multipelt arv i Java. Ett gränssnitt kan användas för att lösa det problemet.

Vad är Interface i Java?

Abstraktion är en process för att dölja implementeringsdetaljerna och endast visa funktionerna för användaren. Abstraktion kan uppnås med abstrakta klasser eller gränssnitt. En abstrakt metod är en metod utan implementering. En klass med minst en abstrakt metod är en abstrakt klass. Exempel på en abstrakt klass är följande.

abstrakt klass A{

abstract void summa();

}

Anta att det finns två abstrakta klasser som A och B. För att implementera abstrakta metoder för A och B skapas en ny klass C. Då borde klass C utöka både A och B., men multipelt arv stöds inte i Java. Därför bör använda gränssnitt. Gränssnitt kan användas för att deklarera metoder, men det är inte möjligt att definiera metoder. Det är inte möjligt att skapa ett objekt med hjälp av gränssnitt. Klass C bör implementera alla metoder i gränssnitt A och B.

gränssnitt A{

void summa();

}

gränssnitt B{

void sub();

}

klass C implementerar A, B{

public void summa(){

System.out.println(“Summation”);

}

public void sub(){

System.out.println(“Subtraktion”);

}

}

Nu är det i huvudprogrammet möjligt att skapa ett objekt av C och anropa båda metoderna.

public static void main (String args) {

C obj=new C();

obj.sum();

obj.sub();

}

Så, gränssnitt kan användas för att implementera flera arv.

En annan användning av gränssnitt är att det ger säkerhet. Se koden nedan.

gränssnitt A {

void summa ();

}

klass B implementerar A {

public void summa () {

System.out.println(“Summation”);

}

public void multiplicera () {

System.out.println(“Multiplication”);

}

}

När du skapar ett objekt av B är det möjligt att anropa båda metoderna summa () och multiplicera (). Om programmeraren vill begränsa med multipliceringsfunktionen () är det möjligt enligt följande.

public static void main(String args){

A obj=new B();

obj.sum();

}

A obj=nytt B(); kommer att skapa ett objekt. Det är av typ A och minnet är allokerat som B. Det är möjligt att anropa sum() men kan inte köra multiply(). Denna begränsning görs med hjälp av gränssnitt.

Vilka är likheterna mellan arv och gränssnitt i Java?

  • Båda koncepten är relaterade till objektorienterad programmering
  • Båda representerar IS-A-relationer.

Vad är skillnaden mellan arv och gränssnitt i Java?

Arv vs gränssnitt i Java

Inheritance är ett OOP-koncept för att härleda nya klasser från de befintliga klasserna. Gränssnitt är en mekanism i OOP för att implementera abstraktion och multipelt arv.
Användning
Arv ger kodåteranvändning. Gränssnitt ger abstraktion och multipelt arv.

Sammanfattning – Arv vs gränssnitt i Java

Java är ett programmeringsspråk med flera paradigm som stöder objektorienterad programmering. Arv och gränssnitt är relaterade till objektorienterad programmering. Skillnaden mellan arv och gränssnitt är att arv är att härleda nya klasser från befintliga klasser och gränssnitt är att implementera abstrakta klasser och multipelt arv.

Ladda ner PDF-versionen av Inheritance vs Interface i Java

Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här Skillnaden mellan arv och gränssnitt i Java

Rekommenderad: