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;
}
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();
	}
}
Bon, je reconnais que c'est assez tordu. Je pensais avoir 12 comme résultat mais j'ai CGenerique.
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