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.
Vous pouvez donc être sûr que certains champs d'une classe sont définis pour chaque implémentation de cette interface.
Par exemple, considérez la classe de message 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 vous définissez une interface pour cette classe afin que je puisse avoir plus de classes qui implémentent l'interface de message, je ne peux définir que la méthode d'envoi et non le constructeur. Alors, comment puis-je m'assurer que chaque implémentation de cette classe a vraiment un ensemble de récepteurs? Si j'utilise une méthode comme celle-ci, setReceiver(String receiver)
je ne peux pas être sûr que cette méthode est vraiment appelée. Dans le constructeur, je pourrais le garantir.