Interfacce Java in 5 Minuti

INDICE TUTORIAL

Interfacce

Le interfacce in java ( e in generale nei linguaggi OOP), sono entità simili a classi, ma i metodi non hanno corpo. Servono a dare dei comportamenti standard a tutte le sottoclassi. Vengono definite tramite l’uso della parola interface al posto della keyword class, nella creazione di una classe.

Come concetto è molto simile ad extends, ma una sottoclasse in java può estendere soltanto un’unica superclasse, mentre una classe può implementare infinite interfaccie (ereditarietà multipla).

E’necessario implementare TUTTI i metodi delle interfacce. Se così non fosse, il compilatore ci darebbe un errore.

Esempio:

public interface Animale {

	public void emettiVerso();

}

Per implementare una interfaccia in java, si usa la parola chiave implements:

Esempio:

public class Cavallo implements Animale {

	@Override
	public void emettiVerso() {
		System.out.println("NITRITO");
		// TODO Auto-generated method stub
		
	}

}

Per implementare più interfaccie, è sufficiente separarle con una virgola:

public class Cavallo implements Animale, AltraInter, AltraAncora

Ricordarsi delle seguenti regole per le interfacce in java:

  • Possiamo dichiarare una variabile indicando come tipo un’interfaccia
  • Non possiamo istanziare un’interfaccia
  • Ad una variabile di tipo interfaccia possiamo assegnare solo istanze di classi che implementano l’interfaccia
  • Su di una variabile di tipo interfaccia possiamo invocare solo metodi dichiarati nell’interfaccia (o nelle sue “super-interfacce” (interfaccia da cui è estesa)).

Si noti che:

  • Le variabili, anche se non sono dichiarate final di fatto sono delle costanti;
  • Non ha metodi con corpo;

Esempio

abstract class Animale{
	
}
interface Felino{
	
}
public class Leone extends Animale  implements Felino {
	
	
}

Notare che se non esistessero le interfacce, non potrei dotare la classe Leone delle caratteristiche di Felino, perche essa estende già una classe (Animale)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *