Forskel mellem arv og grænseflade i Java

Indholdsfortegnelse:

Forskel mellem arv og grænseflade i Java
Forskel mellem arv og grænseflade i Java

Video: Forskel mellem arv og grænseflade i Java

Video: Forskel mellem arv og grænseflade i Java
Video: Релиз Java 17 и Windows 11. Платный Docker и новые MacBook от Apple [MJC News #9] 2024, Juli
Anonim

Nøgleforskel – arv vs grænseflade i Java

Java er et programmeringssprog udviklet af Sun Microsystems. Java kan bruges til at udvikle forskellige applikationer. Det er et multi-paradigme sprog, som understøtter objektorienteret, struktureret osv. Den største fordel ved Java er, at det understøtter objektorienteret programmering (OOP). Programmøren kan oprette klasser og objekter. Der er fire søjler i OOP. De er arv, polymorfi, abstraktion og indkapsling. Arv og grænseflader er relateret til OOP. Den vigtigste forskel mellem arv og grænseflade er, at arv er at udlede nye klasser fra eksisterende klasser, og en grænseflade er at implementere abstrakte klasser og multipel nedarvning.

Hvad er arv i Java?

Inheritance kan opnå kodegenbrug. Arv hjælper med at genbruge attributterne og metoderne i en eksisterende klasse. Mekanismen til at udlede ny klasse ved hjælp af gammel klasse kaldes arv. Den gamle klasse er kendt som forældreklasse eller superklasse. Den afledte klasse kaldes underklasse eller underklasse.

Syntaksen for Java-arv er som følger.

class subclass_name udvider superclass_name {

variabel erklæring;

metodeerklæring;

}

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

offentlig klasse A{

public void 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”);

}

}

Programmer kan bruge arv til at bruge klasse A sum().

offentlig klasse B forlænger klasse A{

public void sub(){

System.out.println(“Sub”);

}

}

I hovedfunktionen er det muligt at oprette et objekt af B og kalde sub(), 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=new B();

obj.sub();

obj.sum();

}

Der er forskellige typer af arv. De er enkeltarv, multipel arv, flerniveauarv og hierarkisk arv. I enkeltarv er der én basisklasse og én afledt klasse. I multi-level arv er der tre klasser, nemlig basisklasse, mellemklasse og afledt klasse. Den mellemliggende klasse arver fra basisklassen, og den afledte klasse arver fra den mellemliggende klasse. I hierarkisk arv er der én basisklasse og mange afledte klasser. Der er en særlig type kendt som hybrid arv. Det er en kombination af to eller flere typer arv.

Forskellen mellem arv og grænseflade i Java
Forskellen mellem arv og grænseflade i Java

Figur 01: Arv

I multiple arv er der mange basisklasser og en afledt klasse. Antag, at klasse A og B er basisklasserne. Klasse C er den afledte klasse. Hvis både A- og B-klasser har den samme metode, og programmøren kalder denne metode fra den afledte klasse, vil det forårsage et tvetydighedsproblem. At arve to klasser kan forårsage en kompileringsfejl. Derfor er multipel nedarvning ikke understøttet i Java. En grænseflade kan bruges til at løse dette problem.

Hvad er Interface i Java?

Abstraktion er en proces med at skjule implementeringsdetaljerne og kun vise funktionaliteterne for brugeren. 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 ugyldig sum();

}

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. Så skal klasse C udvide både A og B. Men multipel nedarvning er ikke understøttet i Java. Derfor bør bruge grænseflader. Grænseflader kan bruges til at deklarere 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 bør implementere alle metoder i grænseflade A og B.

interface A{

void sum();

}

interface B{

void sub();

}

klasse C implementerer A, B{

public void sum(){

System.out.println(“Summation”);

}

public void sub(){

System.out.println(“Subtraktion”);

}

}

Nu er det i hovedprogrammet muligt at oprette et objekt af C og kalde begge metoder.

public static void main (String args) {

C obj=new C();

obj.sum();

obj.sub();

}

Så, grænseflader kan bruge til at implementere multipel nedarvning.

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

interface A {

ugyldig sum ();

}

klasse B implementerer A {

offentlig ugyldig sum () {

System.out.println(“Summation”);

}

public void multiplicer () {

System.out.println(“Multiplication”);

}

}

Når du opretter et objekt af B, er det muligt at kalde begge metoder sum () og gange (). Hvis programmøren ønsker at begrænse brugen af multiplikationsfunktionen () er det muligt som følger.

public static void main(String args){

A obj=new B();

obj.sum();

}

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

Hvad er lighederne mellem arv og grænseflade i Java?

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

Hvad er forskellen mellem arv og grænseflade i Java?

Inheritance vs Interface in Java

Inheritance er et OOP-koncept til at udlede nye klasser fra de eksisterende klasser. Interface er en mekanisme i OOP til at implementere abstraktion og multipel nedarvning.
Usage
Inheritance giver kodegenanvendelighed. Grænseflader giver abstraktion og multipel arv.

Oversigt – arv vs grænseflade i Java

Java er et multi-paradigme programmeringssprog, som understøtter objektorienteret programmering. Arv og grænseflader er relateret til objektorienteret programmering. Forskellen mellem arv og grænseflade er, at nedarvning er at udlede nye klasser fra eksisterende klasser, og grænseflader er at implementere abstrakte klasser og multipel nedarvning.

Download PDF-versionen af Inheritance vs Interface i Java

Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-version her Forskel mellem arv og grænseflade i Java

Anbefalede: