小编典典

私有字段是否由子类继承?

java

我读过一个子类不能继承私有字段或方法。但是,在这个例子中

class SuperClass {
    private int n=3;
    int getN() {
        return n;
    }
}

class SubClass extends SuperClass {
    public static void main(String[] args) {
        SubClass e = new SubClass();
        System.out.println("n= " + e.getN());
    }
}

运行时main,输出为n=3。似乎SubClassn从继承了private属性SuperClass

所以,请解释这里发生了什么。谢谢。


阅读 189

收藏
2020-11-16

共1个答案

小编典典

子类具有其超类的字段,但不能直接访问它们。同样,子类“具有”私有方法,但是您不能直接从子类中调用或重写它们。

有关继承Java文档中,它说

子类并 没有 继承父类的私有成员。

但是,我认为将其视为

子类继承其父类的私有成员,但无权访问它们

但这归结为语义学。

2020-11-16