Java implementa la parola chiave
Esempio
An interface
è una "classe" astratta utilizzata per raggruppare metodi correlati con corpi "vuoti":
Per accedere ai metodi dell'interfaccia, l'interfaccia deve essere "implementata" (un po' come ereditata) da un'altra classe con la implements
parola chiave (invece di extends
). Il corpo del metodo di interfaccia è fornito dalla classe "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();
}
}
Definizione e utilizzo
La implements
parola chiave viene utilizzata per implementare un interface
.
La interface
parola chiave viene utilizzata per dichiarare un tipo speciale di classe che contiene solo metodi astratti.
Per accedere ai metodi dell'interfaccia, l'interfaccia deve essere "implementata" (un po' come ereditata) da un'altra classe con la implements
parola chiave (invece di extends
). Il corpo del metodo di interfaccia è fornito dalla classe "implement".
Note sulle interfacce:
- Non può essere utilizzato per creare oggetti (nell'esempio sopra, non è possibile creare un oggetto "Animal" nella MyMainClass)
- I metodi di interfaccia non hanno un corpo: il corpo è fornito dalla classe "implement".
- Durante l'implementazione di un'interfaccia, è necessario ignorare tutti i suoi metodi
- I metodi di interfaccia sono di default
abstract
epublic
- Gli attributi dell'interfaccia sono per impostazione
public
predefinitastatic
efinal
- Un'interfaccia non può contenere un costruttore (poiché non può essere utilizzata per creare oggetti)
Perché e quando utilizzare le interfacce?
Per ottenere la sicurezza - nascondi determinati dettagli e mostra solo i dettagli importanti di un oggetto (interfaccia).
Java non supporta "ereditarietà multipla" (una classe può ereditare solo da una superclasse). Tuttavia, può essere ottenuto con le interfacce, perché la classe può implementare più interfacce. Nota: per implementare più interfacce, separarle con una virgola (vedi esempio sotto).
Interfacce multiple
Per implementare più interfacce, separale con una virgola:
Esempio
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();
}
}
Pagine correlate
Per saperne di più sulle interfacce, consulta il nostro tutorial sull'interfaccia Java .