0

重複の可能性:
インターフェイスに静的メソッドがないのに、静的フィールドと内部クラスは問題ないのはなぜですか?

インターフェイスが静的ブロックを許可しない理由を知りたいのですが、静的変数を宣言できます。ロジックで静的変数を初期化したい場合はどうすればよいですか。

編集:以前はクエリをより良い形式で投稿していませんでしたが、これはサンプル コードを使用したクエリです。調べてください。

interface A {
    static class XYZ {
        public static void methodA() {
            // some implementation
            System.out.println("methodA");
        }

        public static void methodB() {
            // some more implementation
            System.out.println("methodB");
        }
    }

    void methodC();
}

public class ABC implements A {
    public static void main(String[] args) {
        A.XYZ.methodA();
    }

    @Override
    public void methodC() {
        // TODO Auto-generated method stub

    }
}

インターフェイスの目的は、インターフェイスのユーザー/実装者が必要に応じてプロパティ (メソッド) を実装できるメカニズムを提供することです。しかし、インターフェースに実装を追加することが許可されている場合、インターフェースのその目的がどのように無効になっているのか、インターフェースでのこの実装が許可されている理由を明確にしてください。知りたい

4

1 に答える 1

2

彼らは、実装を許可しないようにインターフェイスを設計しました。静的ブロックは実装を構成するため、許可されていません。

于 2013-01-12T11:27:13.897 に答える