考虑以下两个类A
和B
(java) 以及各种包注意事项:
默认包中的两个类
public class A extends B {
public static class C {}
}
-------------
public class B extends A.C {
public B() {}
}
返回涉及 A 的循环继承错误
A 类在名为 P1 的包中,B 类在名为 P2 的包中
package P1;
import P2.B;
public class A extends B {
public static class C {}
}
--------------
package P2;
import P1.A.C;
public class B extends C {
public B() {}
}
编译没有错误。但是,如果我将类 B 中的导入语句更改为import P1.A
然后将类定义更改public class B extends A.C
为循环错误再次显示。
什么解释了这种行为?