Interface-in Java met Voorbeeld
Wat is interface-in Java?
An Interface-in Java programmeertaal wordt gedefinieerd als een abstract type dat wordt gebruikt om het gedrag van een klasse te specificeren. A Java interface bevat statische constanten en abstracte methoden. Een klasse kan meerdere interfaces implementeren. In Java, interfaces worden gedeclareerd met behulp van het interface-trefwoord. Alle methoden in de interface zijn impliciet openbaar en abstract.
Syntaxis voor het declareren van interface
Om een interface in uw klas te gebruiken, voegt u het trefwoord “implements” toe na uw klasnaam, gevolgd door de interfacenaam.
interface { //methods }
Voorbeeld voor het implementeren van een interface
Laten we nu de interface begrijpen Java met voorbeeld:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Klik hier als de video niet toegankelijk is
Waarom is een interface vereist?
Om het gebruik van de interface in te begrijpen Java beter, laat eens zien Java interface voorbeeld. De klasse “Media Player” kent twee subklassen: CD-speler en DVD-speler. Elk heeft zijn unieke interface-implementatie in Java methode om muziek af te spelen.
Een andere klasse “Combo drive” erft zowel CD als DVD (zie onderstaande afbeelding). Welke speelmethode moet het erven? Dit kan ernstige ontwerpproblemen veroorzaken. En vandaar, Java laat meerdere niet toe erfenis.
Laten we nu nog een voorbeeld van Dog nemen.
Stel dat u een vereiste heeft waarbij klasse “hond” de klasse “dier” en “Huisdier” erft (zie onderstaande afbeelding). Maar je kunt niet twee klassen verlengen Java. Dus wat zou je doen? De oplossing is Interface.
Het regelboek voor de interface zegt:
- A Java implementatie-interface is 100% abstracte klasse en heeft alleen abstracte methoden.
- Class kan een willekeurig aantal interfaces implementeren.
Klasse Hond kan zich uitbreiden naar de klasse “Dier” en de interface implementeren als “Huisdier”.
Java Interfacevoorbeeld:
Laten we het onderstaande interfaceprogramma begrijpen Java:
Stap 1) Kopieer de volgende code in een 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(); } }
Stap 2) Bewaar, compileer en voer de code uit. Observeer de uitvoer van de interface in Java programma.
Verschil tussen klasse en interface
In de klas kunt u een variabele instantiëren en een object maken. | In een interface kunt u geen variabele instantiëren en een object maken. |
Klasse kan concrete (met implementatie) methoden bevatten | De interface kan geen concrete (met implementatie) methoden bevatten |
De toegangsspecificaties die bij klassen worden gebruikt, zijn privé, beschermd en openbaar. | In Interface wordt slechts één specificatie gebruikt: Openbaar. |
Wanneer gebruik je Interface en Abstract Class?
- Gebruik een abstracte klasse wanneer een sjabloon moet worden gedefinieerd voor een groep subklassen
- Gebruik een interface wanneer er een rol gedefinieerd moet worden voor andere klassen, ongeacht de overervingsboom van deze klassen
Moet feiten over Interface kennen
- A Java klasse kan er meerdere implementeren Java Interfaces. Het is noodzakelijk dat de klasse alle methoden implementeert die in de interfaces zijn gedeclareerd.
- Klasse moet alle abstracte methoden overschrijven die in de interface zijn gedeclareerd
- De interface maakt het mogelijk een bericht naar een object te sturen, zonder zich af te vragen tot welke klassen het behoort.
- Klasse moet functionaliteit bieden voor de methoden die in de interface zijn gedeclareerd.
- Alle methoden in een interface zijn impliciet openbaar en abstract
- Een interface kan niet worden geïnstantieerd
- Een interfacereferentie kan verwijzen naar objecten van de implementerende klassen ervan
- Een interface kan zich uitstrekken over één of meerdere interfaces. Klasse kan slechts één klasse uitbreiden, maar een willekeurig aantal interfaces implementeren
- Een interface kan geen andere interface implementeren. Het moet indien nodig een andere interface uitbreiden.
- Een interface die binnen een andere interface wordt gedeclareerd, wordt een geneste interface genoemd
- Op het moment van declaratie moet de interfacevariabele worden geïnitialiseerd. Anders zal de compiler een fout genereren.
- De klasse kan geen twee interfaces in Java implementeren die methoden hebben met dezelfde naam maar met een ander retourtype.
Overzicht:
- De klasse die de interface implementeert, moet functionaliteit bieden voor de methoden die in de interface zijn gedeclareerd
- Alle methoden in een interface zijn impliciet openbaar en abstract
- Een interface kan niet worden geïnstantieerd
- Een interfacereferentie kan verwijzen naar objecten van de implementerende klassen ervan
- Een interface kan zich uitstrekken over één of meerdere interfaces. Een klasse kan slechts één klasse uitbreiden, maar een willekeurig aantal interfaces implementeren