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