接上一篇的
子类的父类和接口有相同的方法,在这里说一下 子类的父类和接口有相同的成员变量,将会怎样处理。
接口:
public
interface
E
{
int x = 1;

}
父类:
public
class
F
{
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();
}

}
这里,大家认为这个是正确的吗?
答案呢,它是这个子类出问题了,在编译时出了问题。
正确的方案是:对于父类的变量,可以用super.x来调用;而接口中的变量,隐含是public static final,所以只能通过E.x来调用。
接口:
public
interface
E
{
int x = 1;
}
public
class
F
{
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();
}
}
答案呢,它是这个子类出问题了,在编译时出了问题。
正确的方案是:对于父类的变量,可以用super.x来调用;而接口中的变量,隐含是public static final,所以只能通过E.x来调用。
探讨当子类继承的父类与实现的接口中存在相同名称成员变量时的处理方式。介绍了如何通过super关键字访问父类变量及直接引用接口名获取接口变量。
1万+

被折叠的 条评论
为什么被折叠?



