Académique Documents
Professionnel Documents
Culture Documents
AU : 2021 - 2022
Auditoire : 2ème Année Licence Multimédia
jihen_khalfallah@yahoo.fr
Plan
• Concept d’héritage
• Définition d’une classe dérivée
• Exemple
• Données privées et héritage
• Constructeur et héritage
• La redéfinition des méthodes
• Le mot-clé super / final
• Les interfaces
• Les classes abstraites
• Interfaces vs classes abstraites
Dr J. Khalfallah 2LM (ISITCom) – Programmation java 2
PLAN DU COURS
3
PROGRAMMATION JAVA
Chapitre 4: Héritage
la relation: EST-UN
Vehicule
Voiture Camion
nombre de pattes)
String toString(), qui renvoie une chaîne de
21
Polymorphisme
• Le nom de polymorphisme vient du grec et signifie qui
peut prendre plusieurs formes.
• C’est un concept puissant de la POO qui complète
l’héritage.
• Polymorphisme de méthode: C’est la redéfinition d’une
méthode.
• Il explique comment une méthode peut se comporter
différemment suivant l’objet sur lequel elle s’applique.
– Des interfaces
– Des classes abstraites
Exemple 2 :
public interface Conduire {
void demarrer();
void arreter();
void accelerer(int x);
void freiner(int x);
}
Dr J. Khalfallah 2LM (ISITCom) – Programmation java 29
Implémentation d’une interface
• Dans la classe, le mot-clé implements indique le nom de
l’interface implémentée.
public class Point implements Comparable{
private double x, y;
// getters setters et constructeur. . .
public boolean coincide (Point p) {
if(this.x == p.getX() && this.y == p.getY())
return true;
else
return false;
}}
Dr J. Khalfallah 2LM (ISITCom) – Programmation java 30
Implémentation de plusieurs interfaces
• Une classe peut hériter d’une autre classe et implémenter une
interface :
}
public double aire(){
return Math.PI*rayon*rayon ;
// Redéfinition(overriding) des méthodes abstraites héritées de Forme
}} 35
Classes abstraites : exemple
public class Rectangle extends Figure {
// Définition d'une autre sous-classe de Forme
private double largeur ;
private double longueur ;
// Définition des attributs propres aux rectangles
public Rectangle (String nom, double largeur, double longueur)
{
super(nom); // Appel implicite de Forme(), avec paramètre
this.largeur = largeur ;
this.longueur = longueur ; // Constructeur dérivé
}
public double aire(){
return this.largeur*this.longueur;
// Redéfinition (overriding) des méthodes abstraites
héritées de Forme
36
}}
Interfaces vs classes abstraites
Interface Classe abstraite
Il est préférable d’utiliser Elle doit être utilisée lorsque
l’interface lorsque plusieurs différentes implémentations
implémentations partagent du même type partagent un
uniquement la signature de comportement commun (la
méthode. définition d’une méthode).
Lorsqu’on connait que les Lorsqu’on connait
exigences et non les partiellement les
implémentations, utilisez une implémentations, utilisez une
« Interface ». « classe abstraite ».
Rappel
- Signature d’une méthode (nom de la méthode + ensemble des types
de ses paramètres) 37