Je voudrais écrire une classe abstraite (ou interface) qui soitComment spécifier qu'une classe d'implémentation doit contenir un champ particulier?
- Forces toutes les classes implémentant pour fournir un champ (idéalement statique) d'un type particulier et le nom (peut-être en jetant une erreur de compilation si il est manquant?), ou
- Fournit automatiquement de tels champs dans les classes d'implémentation.
Un exemple serait:
public abstract class A {
abstract int counter;
}
public class B extends A {
public int getCounter() {
return counter;
}
}
auquel cas la méthode B de getCounter()
reviendrait un (statique ou par exemple) counter
spécifique à la classeB
, et non une valeur héritée deA
. Y a-t-il un moyen de le faire en Java?
Pourquoi doit-il être statique? Si une interface a ... public int getCounter(); est-ce important si la classe d'implémentation l'exécute de manière statique ou non (peut-être garde-t-elle la trace du compteur dans une base de données). Je ne vois pas pourquoi vous auriez besoin de restreindre cela. – Pace