Saya tahu itu tidak mungkin untuk mendefinisikan konstruktor dalam sebuah antarmuka. Tapi saya bertanya-tanya mengapa, karena saya pikir itu bisa sangat berguna.
Jadi Anda bisa yakin bahwa beberapa bidang dalam kelas didefinisikan untuk setiap implementasi antarmuka ini.
Sebagai contoh, pertimbangkan kelas pesan berikut:
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
}
}
Jika sebuah mendefinisikan antarmuka untuk kelas ini sehingga saya dapat memiliki lebih banyak kelas yang mengimplementasikan antarmuka pesan, saya hanya dapat mendefinisikan metode kirim dan bukan konstruktor. Jadi bagaimana saya bisa memastikan bahwa setiap implementasi kelas ini benar-benar memiliki set penerima? Jika saya menggunakan metode seperti setReceiver(String receiver)
saya tidak dapat memastikan bahwa metode ini benar-benar dipanggil. Di konstruktor saya bisa memastikannya.