Słowo kluczowe interfejsu Java
Przykład
An interface
to abstrakcyjna „klasa” używana do grupowania powiązanych metod z „pustymi” treściami:
Aby uzyskać dostęp do metod interfejsu, interfejs musi być „zaimplementowany” (coś w rodzaju dziedziczenia) przez inną klasę ze implements
słowem kluczowym (zamiast extends
). Treść metody interfejsu jest dostarczana przez klasę „implement”:
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}
// Pig "implements" the Animal interface
class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}
class MyMainClass {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Definicja i użycie
Słowo interface
kluczowe służy do deklarowania specjalnego typu klasy, która zawiera tylko metody abstrakcyjne.
Aby uzyskać dostęp do metod interfejsu, interfejs musi być „zaimplementowany” (coś w rodzaju dziedziczenia) przez inną klasę ze implements
słowem kluczowym (zamiast extends
). Treść metody interfejsu jest dostarczana przez klasę „implement”.
Uwagi dotyczące interfejsów:
- Nie można go używać do tworzenia obiektów (w powyższym przykładzie nie jest możliwe tworzenie obiektu "Zwierzę" w MyMainClass)
- Metody interfejsu nie posiadają treści - treść jest dostarczana przez klasę "implement"
- Podczas implementacji interfejsu musisz nadpisać wszystkie jego metody
- Metody interfejsu są domyślnie
abstract
ipublic
- Atrybuty interfejsu to domyślnie
public
,static
afinal
- Interfejs nie może zawierać konstruktora (ponieważ nie można go używać do tworzenia obiektów)
Dlaczego i kiedy używać interfejsów?
Aby osiągnąć bezpieczeństwo - ukryj pewne szczegóły i pokaż tylko ważne szczegóły obiektu (interfejsu).
Java nie obsługuje „wielokrotnego dziedziczenia” (klasa może dziedziczyć tylko z jednej nadklasy). Można to jednak osiągnąć za pomocą interfejsów, ponieważ klasa może implementować wiele interfejsów. Uwaga: Aby zaimplementować wiele interfejsów, oddziel je przecinkami (patrz przykład poniżej).
Wiele interfejsów
Aby zaimplementować wiele interfejsów, oddziel je przecinkami:
Przykład
interface FirstInterface {
public void myMethod(); // interface method
}
interface SecondInterface {
public void myOtherMethod(); // interface method
}
// DemoClass "implements" FirstInterface and SecondInterface
class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}
class MyMainClass {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
Powiązane strony
Przeczytaj więcej o interfejsach w naszym samouczku dotyczącym interfejsu Java .