Tôi biết không thể định nghĩa một hàm tạo trong một giao diện. Nhưng tôi tự hỏi tại sao, bởi vì tôi nghĩ nó có thể rất hữu ích.
Vì vậy, bạn có thể chắc chắn rằng một số trường trong một lớp được xác định cho mỗi lần thực hiện giao diện này.
Ví dụ, hãy xem xét lớp thông báo sau:
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
}
}
Nếu một định nghĩa một giao diện cho lớp này để tôi có thể có nhiều lớp hơn thực hiện giao diện thông báo, tôi chỉ có thể định nghĩa phương thức gửi chứ không phải phương thức khởi tạo. Vậy làm thế nào tôi có thể đảm bảo rằng mọi triển khai của lớp này thực sự có một bộ thu? Nếu tôi sử dụng một phương thức như setReceiver(String receiver)
tôi không thể chắc chắn rằng phương thức này thực sự được gọi. Trong constructor tôi có thể đảm bảo nó.