gpt4 book ai didi

java - Java 中的间接子类无法访问父类(super class)中的 protected 成员

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:43:33 30 4
gpt4 key购买 nike

为什么在 Java 中,父类(super class)的 protected 成员不能被不同包中的间接子类访问?我知道不同包中的直接子类可以访问父类(super class)的 protected 成员。我认为任何子类都可以访问其继承的 protected 成员。

编辑

抱歉新手错误,子类可以访问间接父类(super class)的 protected 成员。

最佳答案

也许你有点困惑。

这是我的快速演示,展示了一个访问 protected 属性的间接子类:

// A.java
package a;
public class A {
protected int a;
}

// B.java
package b; //<-- intermediate subclass
import a.A;
public class B extends A {
}

// C.java
package c; //<-- different package
import b.B;
public class C extends B { // <-- C is an indirect sub class of A
void testIt(){
a++;
System.out.println( this.a );//<-- Inherited from class A
}
public static void main( String [] args ) {
C c = new C();
c.testIt();
}
}

它打印出 1

如您所见,a 属性可从子类 C 访问。

如果您向我们展示您正在尝试的代码,我们可以找出您的困惑所在。

关于java - Java 中的间接子类无法访问父类(super class)中的 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2820630/

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