Gränssnitt i Java med exempel

⚡ Smart sammanfattning

Gränssnitt i Java är en magmuskeltract-typ som anger beteendet en klass måste implementera, innehållande konstanter och abstract-metoder. Den här resursen förklarar vad ett gränssnitt är, varför det krävs, hur man deklarerar och implementerar ett, och hur gränssnitt skiljer sig från klasser och abstract-klasser.

  • 📜 Definition: Ett gränssnitt specificerar beteende med hjälp av abstract-metoder och konstanter som implementerande klasser måste tillhandahålla.
  • 🔑 Nyckelord: Gränssnitt deklareras med nyckelordet interface, och klasser använder implements för att använda dem.
  • 🧩 Multipelt arv: En klass kan implementera många gränssnitt och lösa Javas brist på arv av flera klasser.
  • ⚖️ Klass kontra gränssnitt: Till skillnad från klasser kan inte gränssnitt instansieras och innehåller traditionellt endast publika abs.tract-metoder.
  • 🎯 När du ska använda: Använd ett gränssnitt för att definiera en roll för orelaterade klasser och en abstract-klassen för en delad mall.

Gränssnitt i Java

Vad är Interface i Java?

An Gränssnitt i Java programmeringsspråk definieras som ett abstract-typ som används för att ange en klass beteende. Java gränssnittet innehåller statiska konstanter och abstract-metoder. En klass kan implementera flera gränssnitt. I Java, gränssnitt deklareras med hjälp av nyckelordet interface. Alla metoder i gränssnittet är implicit publika och abstract.

Syntax för att deklarera gränssnitt

För att använda ett gränssnitt i din klass, lägg till nyckelordet "implements" efter ditt klassnamn, följt av gränssnittsnamnet.

interface {
   // methods
}

Exempel för implementeringsgränssnitt

Låt oss nu förstå gränssnitt i Java med ett exempel:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Klicka här. om videon inte är tillgänglig.

Klicka här. om videon inte är tillgänglig

Varför krävs ett gränssnitt?

För att förstå användningen av ett gränssnitt i Java bättre, låt oss titta på en Java gränssnittsexempel. Klassen ”Mediaspelare” har två underklasser: CD-spelare och DVD-spelare. Var och en har sin egen unika gränssnittsimplementeringsmetod för att spela musik.

Varför krävs ett gränssnitt

En annan klass, ”Combo-enhet”, ärver både CD och DVD (se bilden nedan). Vilken uppspelningsmetod ska den ärva? Detta kan orsaka allvarliga designproblem, och därmed, Java tillåter inte flera arv.

Varför krävs ett gränssnitt

Låt oss nu ta ett annat exempel med en hund.

Anta att du har ett krav där klassen "hund" ärver klassen "djur" och "husdjur" (se bilden nedan). Men du kan inte utöka två klasser i JavaSå vad skulle du göra? Lösningen är ett gränssnitt.

Varför krävs ett gränssnitt

Regelboken för ett gränssnitt säger:

  • A Java gränssnittet är 100 % abstract-klassen och har bara abstract-metoder.
  • En klass kan implementera ett valfritt antal gränssnitt.

Klass Hund kan utöka klassen ”Djur” och implementera gränssnittet ”Pet”.

Varför krävs ett gränssnitt

Java Gränssnittsexempel

Låt oss förstå gränssnittsprogrammet nedan i Java:

Steg 1) Kopiera följande kod till 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();
  }
}

Steg 2) Spara, kompilera och kör koden. Observera utdata från gränssnittet i Java program.

Skillnaden mellan klass och gränssnitt

Klass Gränssnitt
I en klass kan du instansiera variabler och skapa ett objekt. I ett gränssnitt kan du inte instansiera variabler eller skapa ett objekt.
En klass kan innehålla konkreta (med implementation) metoder. Ett gränssnitt kan inte innehålla konkreta (med implementations-) metoder.
Åtkomstspecifikationerna som används med klasser är privata, skyddade och offentliga. I ett gränssnitt används endast en specifikator – public.

När man ska använda Interface och Abstract-klass?

  • Använd magmusklernatract-klassen när en mall behöver definieras för en grupp underklasser.
  • Använd ett gränssnitt när en roll behöver definieras för andra klasser, oavsett arvsträdet för dessa klasser.

Måste känna till fakta om Interface

  • A Java klass kan implementera flera Java gränssnitt. Det är nödvändigt att klassen implementerar alla metoder som deklarerats i gränssnitten.
  • En klass bör åsidosätta alla magmusklertract-metoder deklarerade i gränssnittet.
  • Gränssnittet gör det möjligt att skicka ett meddelande till ett objekt utan att behöva bry sig om vilken klass det tillhör.
  • En klass måste tillhandahålla funktionalitet för de metoder som deklareras i gränssnittet.
  • Alla metoder i ett gränssnitt är implicit publika och abstract.
  • Ett gränssnitt kan inte instansieras.
  • En gränssnittsreferens kan peka på objekt i dess implementerande klasser.
  • Ett gränssnitt kan utökas från ett eller flera gränssnitt. En klass kan endast utöka en klass men implementera ett valfritt antal gränssnitt.
  • Ett gränssnitt kan inte implementera ett annat gränssnitt. Det måste utöka ett annat gränssnitt om det behövs.
  • Ett gränssnitt som deklareras inuti ett annat gränssnitt kallas ett kapslat gränssnitt.
  • Vid deklarationstillfället måste en gränssnittsvariabel initieras. Annars kommer kompilatorn att ge ett fel.
  • En klass kan inte implementera två gränssnitt i Java som har metoder med samma namn men en annan returtyp.

Vanliga frågor

Ja. AI-assistenter kan skapa gränssnitt och implementera klasser från en beskrivning i enkelt språk, inklusive metodstubbar. Utvecklare bör fortfarande verifiera metodsignaturer, returtyper och beteende innan de använder koden.

AI-verktyg analyserar gränssnitt för att föreslå implementeringar, upptäcka saknade metoder och rekommendera renare abstractioner under refactoring. Detta påskyndar utvecklingen samtidigt som det hållerping kodbasen är löst kopplad och enklare att underhålla.

Ja. Sedan Java 8, gränssnitt kan inkludera standard- och statiska metoder som har implementeringar, utöver abstract-metoder. Detta gör att gränssnitt kan utvecklas utan att befintliga implementeringsklasser bryts.

Ett markörgränssnitt innehåller inga metoder. Det signalerar metadata till JVM:n eller kompilatorn så att de behandlar implementeringsklasser på ett särskilt sätt. Exempel inkluderar Serializable och Cloneable i standarden. Java bibliotek.

Sammanfatta detta inlägg med: