接口中的数据隐藏 java
Data hiding in interface java
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。有什么方法可以访问属于 class 中的接口的 x?
您需要对接口类型进行显式转换:
System.out.println(((My)new Temp()).x);
但是请注意,x
未绑定到 My
的任何实例。接口字段是隐式的 static
和 final
(更多常量),这意味着上面可以使用:
System.out.println(My.x);
您可以随时使用它。
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.
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。有什么方法可以访问属于 class 中的接口的 x?
您需要对接口类型进行显式转换:
System.out.println(((My)new Temp()).x);
但是请注意,x
未绑定到 My
的任何实例。接口字段是隐式的 static
和 final
(更多常量),这意味着上面可以使用:
System.out.println(My.x);
您可以随时使用它。
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.