Methodes abstraites aux types surchargés
Bonjour,
Je voudrai réaliser la fonctionnalité suivante (version simplifiée) :
soit la classe abstraite C, et deux classes concrètes héritées CInt(contenant un parametre int entier) et CFloat (contenant un parametre float flottant).
la classe abstraite C contient deux méthodes abstraites :
Code:
1 2
| abstract void setValue(Object o);
abstract Object getValue(); |
je voudrai pouvoir surcharger ces méthode dans CInt de façon à avoir :
soit :
Code:
1 2 3
| void setValue(Object o) {
entier = (int) o; // ici Eclipse refuse le cast
} |
soit:
Code:
1 2 3
| void setValue(int o) {
entier = o; // ici Eclipse se plaint que je ne définisse pas la méthode setValue(Object o) ... logique
} |
et pour l'autre méthode :
Code:
1 2 3 4 5 6 7
| int getValue() { // Ici le type de retour est incompatible avec la méthode abstraite
return entier;
}
Object getValue() {
return entier; // Ici c'est ok mais dans le code appelant je ne pourrai pas caster en int
} |
Et bien sûr, de façon similaire pour CFloat, et qu'il soit possible de rajouter de nouvelles classes héritées de la même façon sans devoir modifier la classe mère.
J'imagine que c'est courant, ou que c'est un design pattern connu mais je n'arrive pas à le trouver. Je prends surement le problème par le mauvais bout, et çà commence à m'énerver alors je m'en remets à la facilité de la communauté internet ><
Merci