Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
+getCode():int +getCode():int
………….. …………..
+getEpoux():iMasculin +getEpouse():Féminin
+setEpoux(….):void +setEpouse(….):void
Concept d’héritage
Factoriser
Masculin
Créer une
Féminin
-code: int -code: int
troisième classe
-nom:String -nom:String
-prénom:String -prénom:String Spécifique
-date:Date -date:Date
-email:Email -email:Email
-Epoux: Masculin -Epouse:Feminin
+getCode():int +getCode():int
………….. …………..
+getEpoux():iMasculin +getEpouse():Féminin
+setEpoux(….):void +setEpouse(….):void
Concept d’héritage
Personne
-code:int
…..
-email:Email
Factorisation
+getCode():int (membres
…….. communs)
………
Héritage
Féminin Masculin
-Epouse:Féminin
-Epoux: Masculin Membres
Spécifiques
+getEpoux():Masculin +getEpouse():Féminin
+setEpoux(…):void +setEpouse(….):void
Concept d’héritage
Personne
-code:int
Classe mère ou
…..
Classe base ou -email:Email
Super classe
+getCode():int
……..
………
Féminin Masculin
Classe fille ou -Epouse:Feminin
Classe dérivée -Epoux: Masculin
ou +getEpoux(): +getEpouse():iFéminin
Sous classe Masculin +setEpouse(…):void
+setEpoux(….):void
Héritage
Personne
-code:int
…..
-email:Email
Spécialisation +getCode():int Généralisation
……..
………
Féminin Masculin
-Epouse:Feminin
-Epoux: Masculin
+getEpoux():Masculin +getEpouse():Féminin
+setEpoux(….):void +setEpouse(….):void
Arbre d’héritage
Classe Object
Utiliser intégralement
Utiliser partiellement le Utiliser un code
une méthode
code d’une méthode de sa nouveau.
de sa classe mère.
classe mère.
Redéfinition Définition
Héritage des des méthodes fraiche des
méthodes méthodes
Redéfinition des méthodes
Même signature
puclic class Mere{ Visibilité
supérieure
Cas de redéfinition
void f() {s.o.p(«Je suis f de la
mère »;}
}
Erreur:
puclic class Mere{ visibilité
inférieure
public void f() {s.o.p(«Je suis le
f de la mère »;}
}
cas de
puclic class Mere{ Surcharge et
non
void f() {s.o.p(«Je suis le f de la redéfinition
mère »;}
}
}
Instance this et super
public class A {
int x=1, y=-1, w=-11;
}
class B extends A {
int x=2, y=-2, z=-22;
}
class C extends B {
•Remarque :
Il est conseillé de rajouter l’annotation @Override
avant toute méthode redéfinie, ceci est utile
pour que le compilateur réalise le contrôle et envoie
une erreur si la méthode ne redéfinie aucune autre méthode.
Mot clé final
B b = new B();
D d = new D();
C c = new C();
b instanceof B // true
b instanceof D // false
d instanceof B // true
d instanceof D // true
b = d;
b instanceof B // true
b instanceof D // true
c instanceof B //erreur de compilation
Classes Abstraites
Type statique?
Type
dynamique?
Méthode abstraite
….
// pas de méthode sexe
}