インターフェイスでコンストラクタを定義することは不可能であることを知っています。しかし、それは非常に役立つと思うので、なぜだろうと思います。
したがって、クラスの一部のフィールドがこのインターフェースのすべての実装に対して定義されていることを確認できます。
たとえば、次のメッセージクラスについて考えます。
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)
私がこのようなメソッドを使用する場合、このメソッドが本当に呼び出されるかどうか確信が持てません。コンストラクタでは、それを確認できました。