接上一篇的
子类的父类和接口有相同的方法,在这里说一下 子类的父类和接口有相同的成员变量,将会怎样处理。
接口:
父类:
子类:
这里,大家认为这个是正确的吗?
答案呢,它是这个子类出问题了,在编译时出了问题。
正确的方案是:对于父类的变量,可以用super.x来调用;而接口中的变量,隐含是public static final,所以只能通过E.x来调用。
接口:
public
interface
E
{
int x = 1;
}
int x = 1;
}
public
class
F
{
int x = 2;
}
int x = 2;
}
public
class
G
extends
F
implements
E
{
public G() {
System.out.println(x);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new G();
}
}
public G() {
System.out.println(x);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new G();
}
}
答案呢,它是这个子类出问题了,在编译时出了问题。
正确的方案是:对于父类的变量,可以用super.x来调用;而接口中的变量,隐含是public static final,所以只能通过E.x来调用。