Explication par l'exemple:
Tu defni l'interface suivante (tres simple mais c pour l'exemple)
interface Saveable
{
public void save();
}
voici deux classes differentes implementant l'interface
class A implements Saveable
{
//implementation de l'interface
public void save()
{
//instructions de sauvegarde en BDD par exemple
}
}
class B implements Saveable
{
//implementation de l'interface
public void save()
{
//instructions de sauvegarde en fichier autre exemple
}
}
//utilisation en cas pratique
public static void main(String[] args)
{
A a = new A();
B b = new B();
Vector v = new Vector();
v.add(a);
v.add(b);
//maintenant on veut sauver tous les objet de v
for(Iterator ite = v.iterator(); ite.hasNext();)
{
//on sait que tous les objet de v implemant l'interface
Saveable objetSaveable = (Saveable) ite.next();
//on appelle la fonction save() de chaque objet
//en passant par l'interface
objetSaveable.save();
}
}
Et voilà. D'ailleurs tu as beaucoup d'objet en Java qui fonctionne sur ce principe.
Exemple les List (c une interface)
Vector et ArrayList (entre autre) implémente List, tu peux ainsi utilsier les 2 type d'objet en fonction des cas et faire des fonctions génériques qui utlisent les méthodes de l'interface en ne faisant appelle qu'a un 'objet' List mais qui prendra la reference d'un vrai objet lors de son utlisation.
Si c pas clair dis le moi j'essaierai de faire mieux

A+
Sylvain