Interface i Java med Eksempel

Hvad er Interface i Java?

An Interface i Java programmeringssprog er defineret som en abstrakt type, der bruges til at specificere en klasses adfærd. EN Java grænsefladen indeholder statiske konstanter og abstrakte metoder. En klasse kan implementere flere grænseflader. I Java, er grænseflader erklæret ved hjælp af grænsefladenøgleordet. Alle metoder i grænsefladen er implicit offentlige og abstrakte.

Syntaks for Declaring Interface

For at bruge en grænseflade i din klasse skal du tilføje nøgleordet "implementerer" efter dit klassenavn efterfulgt af grænsefladenavnet.

interface {
//methods
}

Eksempel på implementering af grænseflade

Lad os nu forstå grænsefladen i Java med eksempel:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Klik link. hvis videoen ikke er tilgængelig

Hvorfor er en grænseflade påkrævet?

For at forstå brugen af ​​interface i Java bedre, lad se en Java interface eksempel. Klassen "Media Player" har to underklasser: CD-afspiller og DVD-afspiller. Hver har sin unikke grænsefladeimplementering i Java metode til at spille musik.

Hvorfor er en grænseflade påkrævet

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

Hvorfor er en grænseflade påkrævet

Lad os nu tage endnu et eksempel på Dog.

Antag, at du har et krav, hvor klassen "hund" arver klassen "dyr" og "kæledyr" (se billedet nedenfor). Men du kan ikke forlænge to klasser ind Java. Så hvad ville du gøre? Løsningen er Interface.

Hvorfor er en grænseflade påkrævet

Regelbogen for interface siger,

  • A Java implement interface er 100% abstrakt klasse og har kun abstrakte metoder.
  • Klasse kan implementere et vilkårligt antal grænseflader.

Klassehund kan udvides til klassen "Dyr" og implementere grænsefladen som "kæledyr".

Hvorfor er en grænseflade påkrævet

Java Eksempel på grænseflade:

Lad os forstå nedenstående grænsefladeprogram i Java:

Trin 1) Kopier følgende kode ind i en editor.

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();
  }
}

Trin 2) Gem, kompilér og kør koden. Overhold outputtet fra grænsefladen i Java program.

Forskellen mellem klasse og grænseflade

Klasse
grænseflade
I klassen kan du instansiere variabel og oprette et objekt. I en grænseflade kan du ikke instansiere variabel og oprette et objekt.
Klasse kan indeholde konkrete (med implementering) metoder Grænsefladen kan ikke indeholde konkrete (med implementering) metoder
De adgangsspecifikationer, der bruges med klasser, er private, beskyttede og offentlige. I Interface bruges kun én specificator - Offentlig.

Hvornår skal man bruge interface og abstrakt klasse?

  • Brug en abstrakt klasse, når en skabelon skal defineres for en gruppe af underklasser
  • Brug en grænseflade, når en rolle skal defineres for andre klasser, uanset arvetræet for disse klasser

Skal vide fakta om Interface

  • A Java klasse kan implementere flere Java Grænseflader. Det er nødvendigt, at klassen skal implementere alle de metoder, der er erklæret i grænsefladerne.
  • Klasse bør tilsidesætte alle de abstrakte metoder, der er erklæret i grænsefladen
  • Interfacet tillader at sende en besked til et objekt uden at bekymre sig om, hvilke klasser det tilhører.
  • Klassen skal levere funktionalitet til de metoder, der er erklæret i grænsefladen.
  • Alle metoder i en grænseflade er implicit offentlige og abstrakte
  • En grænseflade kan ikke instansieres
  • En grænsefladereference kan pege på objekter i dens implementeringsklasser
  • En grænseflade kan strække sig fra en eller flere grænseflader. Klasse kan kun udvide én klasse, men implementere et hvilket som helst antal grænseflader
  • En grænseflade kan ikke implementere en anden grænseflade. Det skal udvide en anden grænseflade, hvis det er nødvendigt.
  • En grænseflade, der er erklæret inde i en anden grænseflade, kaldes indlejret grænseflade
  • På tidspunktet for erklæringen skal grænsefladevariablen initialiseres. Ellers vil compileren give en fejl.
  • Klassen kan ikke implementere to grænseflader i java, der har metoder med samme navn, men forskellig returtype.

Sammendrag:

  • Klassen, der implementerer grænsefladen, skal levere funktionalitet til de metoder, der er erklæret i grænsefladen
  • Alle metoder i en grænseflade er implicit offentlige og abstrakte
  • En grænseflade kan ikke instansieres
  • En grænsefladereference kan pege på objekter i dens implementeringsklasser
  • En grænseflade kan strække sig fra en eller flere grænseflader. En klasse kan kun udvide én klasse, men implementere et hvilket som helst antal grænseflader

Opsummer dette indlæg med: