Bonjour, voici 4 classes, et je patauge un peu dans l'héritage et le polymorphisme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class CBadge { public void lecture(){ } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class CGenerique extends CBadge { String maValeur = "CGenerique"; public void lecture(){ System.out.println(maValeur); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public class CGeneriqueMetier extends CGenerique { int maValeur = 12; }Bon, je reconnais que c'est assez tordu. Je pensais avoir 12 comme résultat mais j'ai CGenerique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Main { public static void main(String[] args) { CBadge maCarte; maCarte = new CGeneriqueMetier(); maCarte.lecture(); } }
J'ai mis des points d'arrêts et j'ai bien chaineUtilisateur = 12 dans la pile, mais c'est "CGenerique" qu'il affiche.
Quelqu'un peut m'expliquer. Comment je doit procéder si je veux réutiliser le code de lecture() et pas le recopier dans la classe CGeneriqueMetier ?
Merci d'avance
harf
Partager