Comment définir une interface et la faire implémenter par une classe ?
Savoir faire implémenter plusieurs interfaces à une même classe pour combiner plusieurs contrats.
Savoir faire implémenter plusieurs interfaces à une même classe pour combiner plusieurs contrats.
Java interdit l'héritage multiple de classes, mais une classe peut implémenter autant d'interfaces qu'elle le souhaite, simulant ainsi l'héritage multiple de contrats.
class C implements I1, I2 { ... } (liste des interfaces séparées par des virgules).La classe Robot doit implémenter à la fois Affichable (void afficher()) et Deplacable (void deplacer(int dx, int dy)).
Définir les deux interfaces séparément.
interface Affichable { void afficher(); }
interface Deplacable { void deplacer(int dx, int dy); }
class C implements I1, I2 { ... } (liste des interfaces séparées par des virgules).Robot implémente les deux avec une virgule.
class Robot implements Affichable, Deplacable {
int x, y;
String nom;
Robot(String n) { nom=n; x=0; y=0; }
}
Implémenter les méthodes des deux interfaces.
class Robot implements Affichable, Deplacable {
int x, y; String nom;
Robot(String n) { nom=n; x=0; y=0; }
@Override public void afficher() {
System.out.println(nom + " en (" + x + "," + y + ")");
}
@Override public void deplacer(int dx, int dy) { x+=dx; y+=dy; }
}
Robot r = new Robot("R2D2");
r.deplacer(3, 4);
r.afficher(); // R2D2 en (3,4)
Robot implémente Affichable et Deplacable, remplissant les deux contrats.
La classe Etudiant implémente Affichable (void afficher()) et Evaluable (double evaluer()). Montrer qu'une variable de type Affichable peut référencer un Etudiant.
Montrer qu'une classe peut hériter d'une super-classe ET implémenter des interfaces simultanément.
Crée ton compte gratuit pour accéder à la fiche et aux exercices