Je me posais une petite question vis-à-vis de l'héritage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class A { int a; int b; String c; }On peut donc faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class B extends A { }
Mais pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 A blah = new B();
Jusque là, tout va bien. Cependant, j'aimerai réaliser un objet fils plus restrictif que son père.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 B blih = new A();
Autrement dit, si mon père possède les attributs a,b,c, je veux que mon fils ne travaille qu'avec b.
Alors, d'accord avec cette hiérarchie, j'ai accès à b (et aux autres). Mais si je veux construire mon fils à partir d'un père déjà initialisé, comment faire ?
exemple :
A::a = 1;
A::b = 2;
A::c = "toto";
J'aimerai pouvoir faire un new B() en ayant B::b = 2 également.
Comment faire ?
Je pensais à quelque chose du genre :
Y a-t-il une autre solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class B extends A { B (A pere) { b = pere.b; } }
Partager