关于java中继承的问题......
class Base {
private int val = 10;
}
class Derive extends Base{
public void setVal(int value) {
super.val = value;
}
}
由于我们可以在子类中使用private
关键字更改超类中的super
字段,为什么我们应该使用protected
来声明超类中的字段?
答案 0 :(得分:4)
你做不到。除非Derive
被声明为Base
中的嵌套类(这种情况非常罕见),否则您给出的代码无法编译。
你应该收到这样的错误:
error: val has private access in Base
答案 1 :(得分:0)
super是一个引用变量,用于调用父项构造函数。
答案 2 :(得分:0)
检查您的代码,即使您继承了该类,也无法访问该类的私有代码。