Je sais qu'il n'est pas possible de définir un constructeur dans une interface. Mais je me demande pourquoi, car je pense que cela pourrait être très utile.
Ainsi, vous pouvez être sûr que certains champs d'une classe sont définis pour chaque implémentation de cette interface.
Considérons par exemple la classe de messages suivante :
public class MyMessage {
public MyMessage(String receiver) {
this.receiver = receiver;
}
private String receiver;
public void send() {
//some implementation for sending the mssage to the receiver
}
}
Si je définis une interface pour cette classe afin d'avoir d'autres classes qui mettent en œuvre l'interface de message, je ne peux définir que la méthode d'envoi et non le constructeur. Comment puis-je donc m'assurer que chaque implémentation de cette classe possède réellement un ensemble de récepteurs ? Si j'utilise une méthode comme setReceiver(String receiver)
Je ne peux pas être sûr que cette méthode soit réellement appelée. Dans le constructeur, je pourrais m'en assurer.