Vad är gränssnitt i Java med exempel

Innehållsförteckning:

Anonim

Vad är gränssnitt i Java?

Ett gränssnitt i Java- programmering definieras som en abstrakt typ som används för att specificera klassens beteende. Ett Java-gränssnitt innehåller statiska konstanter och abstrakta metoder. En klass kan implementera flera gränssnitt. I Java deklareras gränssnitt med hjälp av gränssnittsnyckelordet. Alla metoder i gränssnittet är implicit offentliga och abstrakta.

Syntax för deklarerande gränssnitt

interface {//methods}

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

Exempel för implementeringsgränssnitt

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

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

Varför krävs ett gränssnitt?

För att förstå begreppet Java Interface bättre, låt oss se ett exempel. Klassen "Media Player" har två underklasser: CD-spelare och DVD-spelare. Var och en har sin unika implementeringsmetod för att spela musik.

En annan klass "Combo drive" ärver både CD och DVD (se bilden nedan). Vilken spelmetod ska den ärva? Detta kan orsaka allvarliga designproblem. Och därför tillåter Java inte flera arv.

Låt oss nu ta ett annat exempel på hund.

Antag att du har ett krav där klass "hund" ärver klass "djur" och "husdjur" (se bilden nedan). Men du kan inte förlänga två klasser i Java. Så vad skulle du göra? Lösningen är gränssnitt.

Regelboken för gränssnitt säger,

  • Ett gränssnitt är 100% abstrakt klass och har endast abstrakta metoder.
  • Klass kan implementera valfritt antal gränssnitt.

Klass Hund kan utvidgas till klass "Animal" och implementera gränssnittet som "Pet".

Exempel på Java-gränssnitt:

Steg 1) Kopiera följande kod till en redigerare.

gränssnitt Pet {offentligt ogiltigt test ();}klass Hundredskap Husdjur {offentligt ogiltigt test () {System.out.println ("Implementerad gränssnittsmetod");}public static void main (String args []) {Husdjur p = ny hund ();p.test ();}}

Steg 2) Spara, kompilera och köra koden. Observera utdata.

Skillnad mellan klass och gränssnitt

Klass Gränssnitt
I klassen kan du starta en variabel och skapa ett objekt. I ett gränssnitt kan du inte starta en variabel och skapa ett objekt.
Klass kan innehålla konkreta (med implementering) metoder Gränssnittet kan inte innehålla konkreta (med implementerings) metoder

De åtkomstspecifikatorer som används med klasser är privata, skyddade och offentliga.

I gränssnittet används endast en specifikator - Public.

När ska man använda gränssnitt och abstrakt klass?

  • Använd en abstrakt klass när en mall måste definieras för en grupp av underklasser
  • Använd ett gränssnitt när en roll måste definieras för andra klasser, oavsett arvsträdet för dessa klasser

Måste veta fakta om gränssnitt

  • En Java-klass kan implementera flera Java-gränssnitt. Det är nödvändigt att klassen måste implementera alla metoder som anges i gränssnitten.
  • Klass bör åsidosätta alla abstrakta metoder som deklarerats i gränssnittet
  • Gränssnittet gör det möjligt att skicka ett meddelande till ett objekt utan att avgöra vilka klasser det tillhör.
  • Klass måste tillhandahålla funktionalitet för de metoder som deklareras i gränssnittet.
  • Alla metoder i ett gränssnitt är implicit offentliga och abstrakta
  • Ett gränssnitt kan inte instansieras
  • En gränssnittsreferens kan peka på objekt från dess implementeringsklasser
  • Ett gränssnitt kan sträcka sig från ett eller flera gränssnitt. Klass kan bara utöka en klass men implementera 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 i ett annat gränssnitt kallas kapslat gränssnitt
  • Vid tidpunkten för deklarationen måste gränssnittsvariabeln initieras. I annat fall kommer kompilatorn att kasta ett fel.
  • Klassen kan inte implementera två gränssnitt i java som har metoder med samma namn men olika returtyp.

Sammanfattning :

  • Klassen som implementerar gränssnittet måste tillhandahålla funktionalitet för de metoder som anges i gränssnittet
  • Alla metoder i ett gränssnitt är implicit offentliga och abstrakta
  • Ett gränssnitt kan inte instansieras
  • En gränssnittsreferens kan peka på objekt från dess implementeringsklasser
  • Ett gränssnitt kan sträcka sig från ett eller flera gränssnitt. En klass kan endast utöka en klass men implementera valfritt antal gränssnitt