extends
est pour l'extension d'une classe.
implements
est pour la mise en œuvre d'une interface
La différence entre une interface et une classe ordinaire est que dans une interface vous ne pouvez pas spécifier une application spécifique (uniquement son "interface"). Plus précis, cela signifie que vous ne pouvez spécifier des méthodes, mais pas de les mettre en œuvre.
Aussi java ne supporte pas l'héritage multiple pour les classes. Ce problème est résolu par l'utilisation de plusieurs interfaces.
public interface ExampleInterface{
public void do();
public String doThis(int number);
}
public class sub implements ExampleInterface{
public void do(){
//specify what must happen
}
public String doThis(int number){
//specfiy what must happen
}
}
maintenant, l'extension d'une classe
public class SuperClass{
public int getNb(){
//specify what must happen
return 1;
}
public int getNb2(){
//specify what must happen
return 2;
}
}
public class SubClass extends SuperClass{
//you can override the implementation
@Override
public int getNb2(){
return 3;
}
}
dans ce cas
Subclass s = new SubClass();
s.getNb(); //returns 1
s.getNb2(); //returns 3
SuperClass sup = new SuperClass();
sup.getNb(); //returns 1
sup.getNb2(); //returns 2
Je vous suggère de faire plus de recherche sur la dynamique de la liaison, le polymorphisme et, en général, de l'héritage en programmation orientée Objet