Grensesnitt i Java med eksempel

Hva er grensesnitt i Java?

An Grensesnitt i Java programmeringsspråk er definert som en abstrakt type som brukes til å spesifisere oppførselen til en klasse. EN Java grensesnittet inneholder statiske konstanter og abstrakte metoder. En klasse kan implementere flere grensesnitt. I Java, er grensesnitt erklært ved å bruke grensesnittnøkkelordet. Alle metoder i grensesnittet er implisitt offentlige og abstrakte.

Syntaks for erklæringsgrensesnitt

For å bruke et grensesnitt i klassen din, legg til nøkkelordet «implementerer» etter klassenavnet etterfulgt av grensesnittnavnet.

interface {
//methods
}

Eksempel for implementering av grensesnitt

La oss nå forstå grensesnittet i Java med eksempel:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Klikk her. hvis videoen ikke er tilgjengelig

Hvorfor kreves et grensesnitt?

For å forstå bruken av grensesnitt i Java bedre, la se en Java eksempel på grensesnitt. Klassen "Media Player" har to underklasser: CD-spiller og DVD-spiller. Hver har sin unike grensesnittimplementering i Java metode for å spille musikk.

Hvorfor kreves et grensesnitt

En annen klasse "Combo drive" arver både CD og DVD (se bildet nedenfor). Hvilken spillemetode skal den arve? Dette kan forårsake alvorlige designproblemer. Og derfor, Java tillater ikke flere arv.

Hvorfor kreves et grensesnitt

La oss nå ta et annet eksempel på Dog.

Anta at du har et krav der klassen "hund" arver klassen "dyr" og "kjæledyr" (se bildet nedenfor). Men du kan ikke utvide to klasser inn Java. Så hva ville du gjort? Løsningen er Interface.

Hvorfor kreves et grensesnitt

Regelboken for grensesnitt sier:

  • A Java implementer grensesnittet er 100% abstrakt klasse og har kun abstrakte metoder.
  • Klasse kan implementere et hvilket som helst antall grensesnitt.

Klassehund kan utvides til klassen "Dyr" og implementere grensesnitt som "Kjæledyr".

Hvorfor kreves et grensesnitt

Java Eksempel på grensesnitt:

La oss forstå grensesnittprogrammet nedenfor Java:

Trinn 1) Kopier følgende kode inn i et redigeringsprogram.

interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}

Trinn 2) Lagre, kompiler og kjør koden. Observer utgangen til grensesnittet i Java program.

Forskjellen mellom klasse og grensesnitt

Klasse
Interface
I klassen kan du instansiere variabel og lage et objekt. I et grensesnitt kan du ikke instansiere variabel og lage et objekt.
Klasse kan inneholde konkrete (med implementering) metoder Grensesnittet kan ikke inneholde konkrete (med implementering) metoder
Tilgangsspesifikasjonene som brukes med klasser er private, beskyttede og offentlige. I grensesnitt brukes bare én spesifikasjoner - Offentlig.

Når skal jeg bruke grensesnitt og abstrakt klasse?

  • Bruk en abstrakt klasse når en mal må defineres for en gruppe underklasser
  • Bruk et grensesnitt når en rolle må defineres for andre klasser, uavhengig av arvetreet til disse klassene

Må vite fakta om grensesnitt

  • A Java klasse kan implementere flere Java Grensesnitt. Det er nødvendig at klassen må implementere alle metodene som er deklarert i grensesnittene.
  • Klassen skal overstyre alle abstrakte metodene som er deklarert i grensesnittet
  • Grensesnittet lar deg sende en melding til et objekt uten å bekymre deg for hvilke klasser det tilhører.
  • Klassen må gi funksjonalitet for metodene som er deklarert i grensesnittet.
  • Alle metoder i et grensesnitt er implisitt offentlige og abstrakte
  • Et grensesnitt kan ikke instansieres
  • En grensesnittreferanse kan peke til objekter i implementeringsklassene
  • Et grensesnitt kan strekke seg fra ett eller flere grensesnitt. Klasse kan utvide bare én klasse, men implementere et hvilket som helst antall grensesnitt
  • Et grensesnitt kan ikke implementere et annet grensesnitt. Den må utvide et annet grensesnitt om nødvendig.
  • Et grensesnitt som er deklarert inne i et annet grensesnitt, kalles nestet grensesnitt
  • På tidspunktet for erklæringen må grensesnittvariabelen initialiseres. Ellers vil kompilatoren gi en feil.
  • Klassen kan ikke implementere to grensesnitt i java som har metoder med samme navn, men annen returtype.

Sammendrag:

  • Klassen som implementerer grensesnittet må gi funksjonalitet for metodene som er deklarert i grensesnittet
  • Alle metoder i et grensesnitt er implisitt offentlige og abstrakte
  • Et grensesnitt kan ikke instansieres
  • En grensesnittreferanse kan peke til objekter i implementeringsklassene
  • Et grensesnitt kan strekke seg fra ett eller flere grensesnitt. En klasse kan utvide bare én klasse, men implementere et hvilket som helst antall grensesnitt