gpt4 book ai didi

java - 私有(private)字段是否被子类继承?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:41 24 4
gpt4 key购买 nike

我读到子类不能继承私有(private)字段或方法。然而,在这个例子中

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。这似乎 SubClassSuperClass 继承了私有(private)属性 n

那么,请解释一下这里发生了什么。谢谢。

最佳答案

子类“拥有”其父类(super class)的字段,但不能直接访问它们。同样,子类“具有”私有(private)方法,但您不能直接从子类调用或覆盖它们。

Java documentation on inheritance , 它说

A subclass does not inherit the private members of its parent class.

但是,我发现将其视为更有用

A subclass inherits the private members of its parent class but does not have access to them

但这归结为语义。

关于java - 私有(private)字段是否被子类继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com