160 likes | 285 Views
Tableaux des objets. Héritage. C++ Héritage simple Héritage multiple Java Héritage simple Spécialisation Héritage simple : la structure hiérarchique des classes, possibilité de dériver les uns des autres, évolutivité du code. Exemples. classe-parent. Véhicule. Garage.
E N D
Héritage • C++ • Héritage simple • Héritage multiple • Java • Héritage simple • Spécialisation Héritage simple : la structure hiérarchique des classes, possibilité de dériver les uns des autres, évolutivité du code.
Exemples classe-parent Véhicule Garage classe – agrégat « container » Camion Voiture classes-enfants
Héritage simple. Utilisation des méthodes de la classe parente
Héritage simple. Utilisation des méthodes de la classe parente
Appel des constructeurs et des destructeurs • Lors de l’instanciation d’un objet d’une classe dérivée, les constructeurs parents sont appelés dans l’ordre de leur déclaration • Lors de la destruction de cet objet , les destructeurs parents sont appelés mais dans l’ordre inverse.
Derivation publique et dérivation privée class B : public A{…}
Dérivation privée • class B : private A • Interdire à un utilisateur d’une clase dérivée l’accès aux membres publics de sa classe de base • Quand est ce que cela est intéressant? • -ex 1. Lorsque toutes les fonctions utiles de la classe de base sont redéfinies dans la classe dérivée. On interdit l’accès aux anciennes fonctions • -ex2. Les clases sont les mêmes , mais leur usage est différent.
Opérations entre classes de même famille(1) • Héritage public class Carre { class Rectangle : public Carre{ } } • Carre C; • Rectangle R; C=R; “Parent=Enfant” – possible, l’inverse – non Cette affectation entraîne une conversion R dans le “type” C, c’est à dire on ne conserve que la donnée-membre “a” de R.
Opérations entre classes de même famille. Pointeurs(2) • Héritage public class Carre { class Rectangle : public Carre{ } } • Carre * pC; • Rectangle * pR; pC=pR; - possible une conversion pR dans le “type” pC pR=(Rectangle *) pC; - possible uniquement avec le cast explicite