Skillnad mellan arv och gränssnitt i Java

Huvudskillnad - arv mot gränssnittet i Java
 

Java är ett programmeringsspråk som utvecklats av Sun Microsystems. Java kan användas för att utveckla olika applikationer. Det är ett språk med flera paradigm som stöder objektorienterad, strukturerad etc. Den främsta 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. Erfarenhet och gränssnitt är relaterade till OOP. De nyckelskillnad mellan arv och gränssnitt är det arv är att härleda nya klasser från befintliga klasser och ett gränssnitt är att genomföra abstrakta klasser och flera arv.

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är arv i Java
3. Vad är gränssnittet i Java
4. Likheter mellan arv och gränssnitt i Java
5. Sida vid sida-jämförelse - arv mot gränssnitt i Java i tabellform
6. Sammanfattning

Vad är arv i Java?

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

Synkroniseringen av Java arv är som följer.

klassens underklassnamn utökar superklassnamn

variabel deklaration;

metoddeklaration;

Erfarenhetskoncept kan förklaras med hjälp av följande exempel. Antag att det finns en klass som heter A som följer.

offentlig klass A

allmän tomrumsbelopp ()

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.

offentlig klass B

public void sub ()

System.out.println ( ”Sub”);

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

offentlig klass B utökar klass A

public void sub ()

System.out.println ( ”Sub”);

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

statisk statisk tomt huvud (String [] args)

B obj = ny B ();

obj.sub ();

obj.sum ();

Det finns olika typer av arv. De är enda arv, flera arv, arv på flera nivåer och hierarkiskt arv. I enda arv, Det finns en basklass och en härledd klass. I arv på flera nivåer, Det finns tre klasser, nämligen basklass, mellanklass och härledd klass. Mellanklassen ärver från basklassen och härledd klass ärver från mellanklassen. I hierarkiskt arv, Det finns 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.

Figur 01: Arv

I Flera arv Det finns många basklasser och en härledd klass. Antag att klass A och B är basklassen. Klass C är den härledda klassen. Om både A- och B-klasserna har samma metod och programmeraren kallar den metoden från den härledda klassen, kommer det att orsaka ett tvetydighetsproblem. Att arva i två klasser kan orsaka ett sammanställningsfel. Därför stöds inte flera arv i Java. Ett gränssnitt kan användas för att övervinna det problemet.

Vad är gränssnittet i Java?

Abstraktion är en process för att gömma implementeringsdetaljerna och visa endast funktionerna för användaren. Abstraktion kan uppnås med hjälp av abstrakta klasser eller gränssnitt. En abstrakt metod är en metod utan genomförande. En klass med minst en abstrakt metod är en abstrakt klass. Exempel på en abstrakt klass är som följer.

abstrakt klass A

abstrakt tomrumsumma ();

Antag 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å bör klass C utöka både A och B. Men flera arv stöds inte i Java. Därför borde använda gränssnitt. Gränssnitt kan användas för att deklarera metoder, men det är inte möjligt att definiera metoder. Det går inte att skapa ett objekt med gränssnitt. Klass C ska genomföra alla metoder i gränssnitt A och B.

gränssnitt A

tomrumsumma ();

gränssnitt B

tomrumsdel ();

klass C implementerar A, B

allmän tomrumsbelopp ()

System.out.println ( ”Summering”);

public void sub ()

System.out.println ( ”Subtraktion”);

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

statisk statisk tomt huvud (String [] args)

C obj = ny C ();

obj.sum ();

obj.sub ();

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

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

gränssnitt A

tomrumsumma ();

klass B implementerar A

allmän tomrumsbelopp ()

System.out.println ( ”Summering”);

public void multiply () )

System.out.println ( ”multiplikation”);

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

statisk statisk tomt huvud (String [] args)

En obj = ny B ();

obj.sum ();

En obj = ny B (); kommer att skapa ett objekt. Det är av typ A och minnet är allokerat som B. Det är möjligt att ringa summa () men kan inte utföra multiplicera (). Denna begränsning görs med gränssnitt.

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

  • Båda koncepten är relaterade till objektorienterad programmering
  • Båda representerar IS-A-förhållandet.

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

Erfarenhet mot gränssnitt i Java

Arv ä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 genomföra abstraktion och flera arv.
Användande
Erfarenhet ger kodåteranvändning. Gränssnitt ger abstraktion och flera arv.

Sammanfattning - Arv mot gränssnittet i Java

Java är ett programmeringssprog med flera paradigm som stöder objektorienterad programmering. Erfarenhet och gränssnitt är relaterade till objektorienterad programmering. Skillnaden mellan arv och gränssnitt är att arvet är att härleda nya klasser från befintliga klasser och gränssnitt är att genomföra abstrakta klasser och flera arv.

Ladda ner PDF-versionen av arv mot gränssnittet i Java

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

Referens:

1.Point, handledning. "Java arv.", Tutorials Point, 31 okt 2017. Tillgänglig här 
2.Point, handledning. "Java-gränssnitt." , Tutorials Point, 31 okt 2017. Tillgänglig här 

Image Courtesy:

1. "CPT-OOP-arv-cyklar" Av Pluke - Egent arbete, (Public Domain) via Commons Wikimedia