数据隐藏在接口java中

时间:2015-07-13 18:43:35

标签: java interface data-hiding

    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?

2 个答案:

答案 0 :(得分:2)

您需要对接口类型进行显式强制转换:

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

但请注意,x未绑定到My的任何实例。接口字段隐式staticfinal(更多常量),这意味着上面的操作可以使用:

System.out.println(My.x);

答案 1 :(得分: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
    }
}
<{1}}的

字段始终为Interface