HÉRITAGE
Inf-2120
v.193
CONTENUS
• Rôles de l’héritage.
• Éléments syntaxiques.
• Impact sur le modèle de la mémoire.
• Réécriture et surcharge.
• Classes Object, Enum, Class, et Exception.
• Classes et méthodes abstraites.
ROLES DE L’HÉRITAGE
• Généralisation – spécialisation.
• Généralisation
• Classe mère : contient le code commun à toutes les sous-classes.
• Spécialisation
• Classes filles : contient le code spécifique à une sous-classe.
• Donc rend plus précis certaine action, les adaptes à un contexte plus précis.
• Construction de sous-type.
ÉLÉMENTS SYNTAXIQUES.
• Le mot clef extends.
• Constructeurs, utilisation du mot clef super.
• Introduction à la portée protected.
MÉCANIQUE
• La sous-classe hérite de tous ce qui est protected et public.
• La sous-classe n’hérite pas des constructeurs.
• Type statique et type dynamique.
• Statique : le type attribué lors de la compilation. Il est écrit dans le code,
généralement avant le nom de la variable.
• Dynamique : le type est ajouté lors de l’exécution. La commande new construit la
référence vers le type dynamique.
IMPACT SUR LE MODÈLE DE LA
MÉMOIRE.
• Ajout d’une reference de la sous-classe vers la super-classe.
Exemple de code :
• [Link]
• [Link]
PieceEchec p = new Tour( 1, 1 );
Thread
Heap
Code
Principal Locale : main noColonne : 1
• main PieceEchec p noLigne : 1
Type dynamique :
PieceEchec
• Constructeurs
Tour
• constructeurs
RÉÉCRITURE ET SURCHARGE.
• Surcharge : signature différente pour le même nom de méthode.
• Réécriture : même signature pour le même nom de méthode.
• Doit être dans une sous-classe.
• Annotation @Override.
• Exemple avec la méthode equals.
• Utilisation de instanceof.
Exemple de code :
• [Link]
Exemple de code :
• [Link]
• [Link]
Thread
Heap
Code
Principal Locale : main noColonne : 1
• main PieceEchec p noLigne : 1
Type dynamique :
PieceEchec
• Constructeurs
• déplacer
• estDeplValide
Tour
• Constructeurs
• estDeplValide
QUELQUES CLASSES EXISTANTES
• Object.
• Exception.
• Enum.
• Class.
OBJECT
• Classe de base.
• Voir sur le site de Oracle.
• Méthode equals, clone et toString.
EXCEPTION
• Classe de base pour les exceptions.
• Voir sur le site de Oracle.
Exemple de code :
• [Link]
TYPE ÉNUMÉRÉ
• Permet de construire un type avec un nombre connu et limité d’instance
nommable.
• Hérite de la classe Enum.
• Voir sur le site de Oracle.
Exemple de code :
• [Link]
• [Link]
LA CLASSE CLASS
• Les instances de cette classe construisent les descripteurs de classes.
• Voir sur le site de Oracle.
CLASSES ET MÉTHODES ABSTRAITES
• Classe abstraite : ne peu pas avoir d’instance.
• Méthode abstraite : n’a pas de code.
RÈGLES IMPORTANTES
1. Si une classe contient au moins une méthode abstraite, alors cette classe doit
être abstraite.
2. Une classe hérite des méthodes abstraites de la classe mère.
3. Il est possible de réécrire une méthode abstraite.
Exemple de code :
• [Link]
• [Link]