Je crée une interface avec de nombreuses classes de mise en œuvre et il est un attribut qu'ils doivent tous avoir; Je pense qu'il est préférable de mettre cet attribut dans leur interface que l'écriture de lignes de constructeur, mais les attributs ne peut être statique et définitive besoin d'être initialisé immédiatement.
public interface Interface{
static final AttrType attribute = new AttrType( *something* );
J'ai 2 problèmes: cet attribut est une classe et son constructeur a besoin d'autres paramètres de type non seulement ints, et aussi il ne devrait pas être initialisé ici, je dois toutes les classes de mise en œuvre de l'interface pour travailler sur la même instance de attrtype qui, Je dis que je ne vais pas instancier dans l'interface.
Alors, comme je ne suis pas assez expert, est-il un moyen de le faire dans l'interface ou je devrais écrire une ligne dans chaque sous-classe constructeur à mettre en une instance attrtype dont ils ont besoin?
interfaces Java décrivent ce qu'est une classe peut faire, plutôt que ce qu'est une classe. Par conséquent, une interface ne décrit que des méthodes.
Vous pouvez gérer cela de plusieurs façons:
Grâce à une interface, vous pourriez avoir un getter pour la variable, ce qui forcerait les classes de mise en œuvre pour avoir la variable. Quelque chose comme "attrtype publique getAttribute ();"
Ou vous pouvez créer une classe, probablement abstraite, qui met en œuvre l'interface et a la variable, et son getter et setter. Les sous-classes seraient tous hériter de cette variable et le comportement.