Le premier appel dans le constructeur de la sous-classe est un appel au constructeur de la superclasse (requis, ajouté par le compilateur si nécessaire). Ainsi, lorsque la valeur désirée doit être calculée dans le constructeur de la sous-classe, la "stratégie du constructeur" n'est pas possible. Dans ce cas, le STRATEGIE ci-dessous peut être utilisé:
Déclarez une méthode abstracct dans superclasse, retournant la valeur souhaitée, par exemple:
protected abstract String getValue();
En superclasse, partout où vous avez besoin de la valeur, utilisez la méthode getValue()
.
Dans la sous-classe magasin la valeur en tant que domaine privé, par exemple:
private String value;
Dans la sous-classe initialiser/définir la valeur (par exemple dans le constructeur) et mettre en œuvre la méthode abstraite (nécessaire, la classe ne compile pas autrement) :
@Override
protected String getValue() {
return value;
}
Notez que 'extend' sous-classe, pas' implement' leurs superclasses – akf