0
    interface My{
        int x = 10;
    }
    class Temp implements My{
        int x = 20;
        public static void main(String[] s){
              System.out.println(new Temp().x);
        }
    }

これにより、結果が 20 として出力されます。クラスのインターフェイスに属する x にアクセスする方法はありますか?

4

2 に答える 2

2

インターフェイス型への明示的なキャストを行う必要があります。

System.out.println(((My)new Temp()).x);

ただし、xのインスタンスにバインドされていないことに注意してくださいMy。インターフェイス フィールドは暗黙的staticに and final(より多くの定数) です。つまり、上記は次を使用して実行できます。

System.out.println(My.x);
于 2015-07-13T18:45:08.017 に答える
0

これでいつでも使えます。

interface My {

    int x = 10;
}

class Temp implements My {

    int x = 20;

    public static void main(String[] s) {
        System.out.println(new Temp().x);        // 20
        System.out.println(My.x);                // 10
    }
}

のフィールドInterfaceは常にstatic.

于 2015-07-13T18:50:21.707 に答える