Я знаю, что невозможно определить конструктор в интерфейсе. Но мне интересно, почему, потому что я думаю, что это может быть очень полезно.
Таким образом, вы можете быть уверены, что некоторые поля в классе определены для каждой реализации этого интерфейса.
Например, рассмотрим следующий класс сообщений:
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
}
}
Если определить интерфейс для этого класса, чтобы у меня было больше классов, реализующих интерфейс сообщений, я могу определить только метод send, а не конструктор. Итак, как я могу гарантировать, что каждая реализация этого класса действительно имеет набор получателей? Если я использую такой метод, setReceiver(String receiver)я не могу быть уверен, что этот метод действительно вызывается. В конструкторе я смог это обеспечить.