Interface i Java med Eksempel

⚡ Smart opsummering

Interface i Java er en mavemuskeltract-type, der specificerer den adfærd, en klasse skal implementere, indeholdende konstanter og abstract-metoder. Denne ressource forklarer, hvad en grænseflade er, hvorfor den er påkrævet, hvordan man deklarerer og implementerer en, og hvordan grænseflader adskiller sig fra klasser og abstract-klasser.

  • 📜 Definition: En grænseflade specificerer adfærd ved hjælp af abstract-metoder og konstanter, som implementeringsklasser skal levere.
  • 🔑 Søgeord: Grænseflader deklareres med nøgleordet interface, og klasserne bruger implements til at implementere dem.
  • 🧩 Multipel arv: En klasse kan implementere mange grænseflader og løse Java's mangel på arv af flere klasser.
  • ⚖️ Klasse vs. grænseflade: I modsætning til klasser kan grænseflader ikke instantieres og indeholder traditionelt kun offentlige abs.tract-metoder.
  • 🎯 Hvornår skal du bruge: Brug en grænseflade til at definere en rolle for ikke-relaterede klasser og en abstract-klasse for en delt skabelon.

Interface i Java

Hvad er Interface i Java?

An Interface i Java Programmeringssprog er defineret som et abstract-type, der bruges til at specificere en klasses opførsel. Java grænsefladen indeholder statiske konstanter og abstract-metoder. En klasse kan implementere flere grænseflader. I Java, interfaces deklareres ved hjælp af nøgleordet interface. Alle metoder i interfacet er implicit offentlige og abstract.

Syntaks for Declaring Interface

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

interface {
   // methods
}

Eksempel på implementering af grænseflade

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

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Klik link. hvis videoen ikke er tilgængelig.

Klik link. hvis videoen ikke er tilgængelig

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

At forstå brugen af ​​en grænseflade i Java bedre, lad os se på en Java Eksempel på grænseflade. Klassen "Media Player" har to underklasser: CD-afspiller og DVD-afspiller. Hver har sin egen unikke grænsefladeimplementeringsmetode til at afspille musik.

Hvorfor er en grænseflade påkrævet

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

Hvorfor er en grænseflade påkrævet

Lad os nu tage et andet eksempel med en hund.

Antag, at du har et krav, hvor klassen "hund" arver klassen "dyr" og "Kæledyr" (se billedet nedenfor). Men du kan ikke udvide to klasser i JavaSå hvad ville du gøre? Løsningen er en grænseflade.

Hvorfor er en grænseflade påkrævet

Regelbogen for en grænseflade siger:

  • A Java grænsefladen er 100% abstract-klasse og har kun abstract-metoder.
  • En klasse kan implementere et hvilket som helst antal grænseflader.

Klasse Hund kan udvide klassen “Dyr” og implementere grænsefladen “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. Observer outputtet fra grænsefladen i Java program.

Forskellen mellem klasse og grænseflade

Klasse grænseflade
I en klasse kan du instansiere variabler og oprette et objekt. I en grænseflade kan du ikke instantiere variabler eller oprette et objekt.
En klasse kan indeholde konkrete (med implementering) metoder. En grænseflade kan ikke indeholde konkrete (med implementerings-) metoder.
De adgangsspecifikationer, der bruges med klasser, er private, protected og public. I en grænseflade bruges kun én specifikator – public.

Hvornår skal man bruge Interface og Abstract-klasse?

  • Brug mavemusklernetract-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 disse klassers arvstræ.

Skal vide fakta om Interface

  • A Java klasse kan implementere flere Java grænseflader. Det er nødvendigt, at klassen implementerer alle de metoder, der er deklareret i grænsefladerne.
  • En klasse bør tilsidesætte alle mavemusklertract-metoder deklareret i grænsefladen.
  • Grænsefladen gør det muligt at sende en besked til et objekt uden at bekymre sig om, hvilken klasse det tilhører.
  • En klasse skal levere funktionalitet til de metoder, der er deklareret i grænsefladen.
  • Alle metoder i en grænseflade er implicit offentlige og abstract.
  • En grænseflade kan ikke instantieres.
  • En grænsefladereference kan pege på objekter i dens implementeringsklasser.
  • En grænseflade kan udvide sig fra en eller flere grænseflader. En 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. Den skal udvide en anden grænseflade, hvis det er nødvendigt.
  • En grænseflade, der er deklareret inde i en anden grænseflade, kaldes en indlejret grænseflade.
  • På tidspunktet for deklarationen skal en grænsefladevariabel initialiseres. Ellers vil compileren give en fejl.
  • En klasse kan ikke implementere to grænseflader i Java der har metoder med samme navn, men en forskellig returtype.

Ofte Stillede Spørgsmål

Ja. AI-assistenter kan oprette grænseflader og implementere klasser ud fra en beskrivelse i et letforståeligt sprog, inklusive metodestubs. Udviklere bør stadig verificere metodesignaturer, returtyper og adfærd, før de bruger koden.

AI-værktøjer analyserer grænseflader for at foreslå implementeringer, opdage manglende metoder og anbefale renere abstractioner under refactoring. Dette fremskynder udviklingen, samtidig med at det holderping kodebasen er løst koblet og nemmere at vedligeholde.

Ja. Siden Java 8, grænseflader kan omfatte standard- og statiske metoder, der har implementeringer, udover abstract-metoder. Dette gør det muligt for grænseflader at udvikle sig uden at ødelægge eksisterende implementeringsklasser.

En markørgrænseflade indeholder ingen metoder. Den signalerer metadata til JVM'en eller compileren, så de behandler implementeringsklasser specielt. Eksempler inkluderer Serializable og Cloneable i standarden. Java bibliotek.

Opsummer dette indlæg med: