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