子类的父类和接口有相同的成员变量
2007-11-13 13:16
295 查看
接上一篇的 子类的父类和接口有相同的方法,在这里说一下 子类的父类和接口有相同的成员变量,将会怎样处理。
接口:
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来调用。
相关文章推荐
- 子类继承父类的同时又去实现一个成员变量、方法与父类相同的接口,最后调的是谁的成员变量和方法?
- 父类和子类有相同成员变量时的例子
- [C#]父类与子类的静态成员变量、实例成员变量、构造函数的执行顺序
- 父类指针如何访问子类数据成员变量
- java子类成员变量与父类重名问题解释
- C++继承时子类父类同名成员变量的问题
- JavaSE8基础 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量
- 父类和子类的同名成员函数参数格式相同,返回值类型不同
- java 父类子类成员变量,静态变量,构造器创建先后顺序
- Java父类子类成员变量初始化
- Java多态 实例子类自动调用父类为空的构造方法 成员变量不支持Override 可写,没多态效果
- 父类调用子类的成员变量
- [C++]父类与子类的静态成员变量、实例成员变量、构造函数的执行顺序
- 基类子类的this指针相同,但在基类函数永远调用基类的成员变量
- 接口父类变量引用指向子类
- 黑马程序员--03.面向对象--02.子类和父类成员变量的关系【个人总结】
- 子类的父类和接口有相同的方法
- JAVA: 子类“覆盖”父类的成员变量
- [C++] 关于子类声明与父类同名同类型的成员变量的问题
- 父类和子类中存在同一个成员变量