Forskel mellem arv og interface i Java

Nøgleforskel - arv vs interface i Java
 

Java er et programmeringssprog udviklet af Sun Microsystems. Java kan bruges til at udvikle forskellige applikationer. Det er et sprog med flere paradigmer, der understøtter objektorienteret, struktureret osv. Den største fordel ved Java er, at det understøtter Objektorienteret programmering (OOP). Programmereren kan oprette klasser og objekter. Der er fire søjler i OOP. De er arv, polymorfisme, abstraktion og indkapsling. Arv og grænseflader er relateret til OOP. Det vigtigste forskel mellem arv og interface er det arv er at udlede nye klasser fra eksisterende klasser, og en grænseflade er at implementere abstrakte klasser og multiple arv.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er arv i Java
3. Hvad er interface i Java
4. Ligheder mellem arv og interface i Java
5. Sammenligning side ved side - Arv vs interface i Java i tabelform
6. Resume

Hvad er arv i Java?

Arv kan opnå kodegenanvendelighed. Arv hjælper med at genbruge attributter og metoder for en eksisterende klasse. Mekanismen for at udlede ny klasse ved hjælp af gammel klasse kaldes arv. Den gamle klasse kaldes forældreklasse eller superklasse. Den afledte klasse kaldes børneklasse eller underklasse.

Syntaks for Java-arv er som følger.

klasse underklassenavn udvider superklassenavn

variabel erklæring;

metodeerklæring;

Arvskoncept kan forklares ved hjælp af følgende eksempel. Antag, at der er en klasse kaldet A som følger.

offentlig klasse A

offentlig ugyldig sum ()

System.out.println ( ”Sum”);

Hvis vi vil tilføje en ny metode uden at ændre den eksisterende klasse, kan vi gøre det som følger.

offentlig klasse B

public void sub ()

System.out.println ( ”Sub”);

Programmerer kan bruge arv til at bruge klasse A-sum ().

offentlig klasse B udvider klasse A

public void sub ()

System.out.println ( ”Sub”);

I hovedfunktionen er det muligt at oprette et objekt af B og opkaldssub (), som hører til klasse B og sum (), som hører til klasse A ved hjælp af arv.

public static void main (String [] args)

B obj = ny B ();

obj.sub ();

obj.sum ();

Der er forskellige typer arv. De er en enkelt arv, flere arver, flere niveauer arv og hierarkisk arv. I enkelt arv, der er en baseklasse og en afledt klasse. I arv på flere niveauer, der er tre klasser, nemlig baseklasse, mellemklasse og afledt klasse. Mellemklassen arver fra baseklassen, og afledt klasse arver fra mellemklasse. I hierarkisk arv, der er en baseklasse og mange afledte klasser. Der er en speciel type kendt som Hybrid arv. Det er en kombination af to eller flere arvetyper.

Figur 01: Arv

I Flere arv der er mange baseklasser og en afledt klasse. Antag, at klasse A og B er baseklasser. Klasse C er den afledte klasse. Hvis både A- og B-klasser har den samme metode, og programmereren kalder den metode fra den afledte klasse, vil den forårsage et tvetydighedsproblem. At arve to klasser kan forårsage en kompileringstid-fejl. Derfor understøttes multiple arv ikke i Java. En grænseflade kan bruges til at overvinde dette problem.

Hvad er interface i Java?

Abstraktion er en proces til at skjule implementeringsdetaljerne og kun vise brugerens funktionaliteter. Abstraktion kan opnås ved hjælp af abstrakte klasser eller grænseflader. En abstrakt metode er en metode uden implementering. En klasse med mindst én abstrakt metode er en abstrakt klasse. Eksempel på en abstrakt klasse er som følger.

abstrakt klasse A

abstrakt tomrum ();

Antag, at der er to abstrakte klasser som A og B. For at implementere abstrakte metoder til A og B oprettes en ny klasse C. Derefter skal klasse C udvide både A og B. Men multiple arv understøttes ikke i Java. Derfor bør bruge grænseflader. Grænseflader kan bruges til at erklære metoder, men det er ikke muligt at definere metoder. Det er ikke muligt at oprette et objekt ved hjælp af grænseflader. Klasse C skal implementere alle metoder i interface A og B.

interface A

tomrum ();

interface B

void sub ();

klasse C implementerer A, B

offentlig ugyldig sum ()

System.out.println ( ”Summering”);

public void sub ()

System.out.println ( ”Subtraktion”);

I hovedprogrammet er det nu muligt at oprette et objekt med C og kalde begge metoder.

public static void main (String [] args)

C obj = nyt C ();

obj.sum ();

obj.sub ();

Så grænseflader kan bruges til at implementere flere arv.

En anden brug af grænseflader er, at det giver sikkerhed. Se nedenstående kode.

interface A

tomrum ();

klasse B implementerer A

offentlig ugyldig sum ()

System.out.println ( ”Summering”);

multiplikation af offentligt tomrum ()

Println ( ”Multiplikation”);

Når du opretter et objekt af B, er det muligt at kalde begge metoder sum () og formere sig (). Hvis programmereren ønsker at begrænse ved hjælp af multiplikation () -funktion, er det muligt som følger.

public static void main (String [] args)

En obj = ny B ();

obj.sum ();

En obj = ny B (); opretter et objekt. Det er af type A, og hukommelsen tildeles som B. Det er muligt at kalde sum () men kan ikke udføre multiplikation (). Denne begrænsning udføres ved hjælp af grænseflader.

Hvad er ligheden mellem arv og interface i Java?

  • Begge koncepter er relateret til objektorienteret programmering
  • Begge repræsenterer IS-A-forhold.

Hvad er forskellen mellem arv og interface i Java?

Arv vs interface i Java

Arv er et OOP-koncept til at udlede nye klasser fra de eksisterende klasser. Interface er en mekanisme i OOP til implementering af abstraktion og multiple arv.
Anvendelse
Arv giver genanvendelighed af kode. Grænseflader giver abstraktion og flere arver.

Resumé - Arv vs interface i Java

Java er et multi-paradigm programmeringssprog, der understøtter objektorienteret programmering. Arv og grænseflader er relateret til objektorienteret programmering. Forskellen mellem arv og interface er, at arv er at hente nye klasser fra eksisterende klasser og grænseflader er at implementere abstrakte klasser og multiple arv.

Download PDF-versionen af ​​arv vs interface i Java

Du kan downloade PDF-version af denne artikel og bruge den til offline-formål som pr. Citatnotat. Download PDF-version her Forskel mellem arv og interface i Java

Reference:

1.Point, selvstudier. “Java Inheritance.”, Tutorials Point, 31. oktober 2017. Findes her 
2.Point, selvstudier. "Java-grænseflader." , Tutorials Point, 31. oktober 2017. Tilgængelig her 

Billede høflighed:

1.'CPT-OOP-arv-cykler 'af Pluke - Eget arbejde, (Public Domain) via Commons Wikimedia