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;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
class B extends A {
 
}
On peut donc faire

Mais pas

Jusque là, tout va bien. Cependant, j'aimerai réaliser un objet fils plus restrictif que son père.

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 :

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;
    }
}
Y a-t-il une autre solution ?