Sé que no es posible definir un constructor en una interfaz. Pero me pregunto por qué, porque creo que podría ser muy útil.
Por lo tanto, puede estar seguro de que algunos campos de una clase están definidos para cada implementación de esta interfaz.
Por ejemplo, considere la siguiente clase de mensaje:
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 se define una interfaz para esta clase de modo que pueda tener más clases que implementen la interfaz de mensajes, solo puedo definir el método de envío y no el constructor. Entonces, ¿cómo puedo asegurarme de que cada implementación de esta clase realmente tenga un conjunto de receptores? Si uso un método como setReceiver(String receiver)
no puedo estar seguro de que realmente se llama a este método. En el constructor podría asegurarlo.