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.

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.
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.
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.
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”.
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.




