2

この質問を読みました。答えは、Java 8 (インターフェースでデフォルトのメソッドを持つことができる場所) でさえ、デフォルトのコンストラクターを持つことができないと言っています。そして、それは意味がないと言っています。

なぜそれが意味をなさないのか、またはJava 8でデフォルトコンストラクターがサポートされていない理由を誰かが説明できますか?

4

2 に答える 2

4

コンストラクターの主な目的は、定義された型のインスタンスを提供することですが、インターフェイスでは意味がありません。インターフェイスの主な目的は、コード内のコンポーネント間のコントラクトを提供することだからです。

デフォルト コンストラクターに関しては、デフォルト メソッドにはロジックがあるため、実際には意味がありません。デフォルト コンストラクターでどのようなロジックを宣言しますか?

于 2016-06-30T05:24:28.253 に答える
0

何のコンストラクタ?インスタンスを作成するコンストラクターを持つのはクラスだけです。

インターフェイスに、すべてがデフォルトの実装を持つメソッドがある場合、次のようにインスタンスを作成できます。

MyFace obj = new MyFace(){};

2 つの余分な文字をコーディングする必要があることを嘆いているようです{}

于 2016-06-30T05:28:00.180 に答える