Eu sei que não é possível definir um construtor em uma interface. Mas estou me perguntando por que, porque acho que poderia ser muito útil.
Portanto, você pode ter certeza de que alguns campos de uma classe são definidos para todas as implementações dessa interface.
Por exemplo, considere a seguinte classe de mensagem:
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
}
}
Se definir uma interface para esta classe para que eu possa ter mais classes que implementam a interface da mensagem, só posso definir o método send e não o construtor. Então, como posso garantir que toda implementação dessa classe realmente tenha um receptor definido? Se eu usar um método como esse, setReceiver(String receiver)
não posso ter certeza de que esse método seja realmente chamado. No construtor, eu poderia garantir isso.