Interface i Java med Eksempel
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 "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.
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.
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.
Regelbogen for interface siger,
- A Java Redskabsgrรฆnsefladen er 100% abstract-klasse og har kun abstract-metoder.
- Klasse kan implementere et vilkรฅrligt antal grรฆnseflader.
Klassehund kan udvides til klassen "Dyr" og implementere grรฆnsefladen som "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. Overhold outputtet fra grรฆnsefladen i Java program.
Forskellen mellem klasse og 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 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 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.
- Timen bรธr tilsidesรฆtte alle mavemusklertract-metoder deklareret 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 abstract
- 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 abstract
- 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




