【发布时间】:2016-01-07 13:44:53
【问题描述】:
//Filename: A.java
package packageA;
public class A {
protected int x;
}
//Filename B.java
package packageB;
import packageA.A;
public class B extends A {
void action(A ob1, B ob2, C ob3) {
x = 10;
ob1.x = 10; // <-- error here
ob2.x = 10;
ob3.x = 10;
}
public class C extends B {
void action(A ob1, B ob2, C ob3) {
x = 10;
ob1.x = 10; // <-- error here
ob2.x = 10; // <-- error here
ob3.x = 10;
}
所以,我在阅读 Java 中的受保护用法时遇到了这个问题。
如您所见,A.java 和 B.java 是单独的文件并保存在单独的包中。在编译 B.java 时,我收到 3 个错误,表明 x 在 A 中具有受保护的访问权限。有人可以解释为什么即使在扩展类A 之后我还是会出错?
【问题讨论】:
标签: java oop inheritance packages protected