根据文档的第二个表(http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html),没有标识符的成员对子类不可见。
但是,当我运行以下示例代码时,会打印“1”(b 的内容)!
class Class1{
private int a=0;
int b=1;
protected int c=2;
public int d=3;
}
class Class2 extends Class1{ }
public class HelloWorld{
public static void main(String []args){
Class2 klass=new Class2();
System.out.println(klass.b);
}
}
如果一个没有访问修饰符的成员不能从子类访问,为什么在这个例子中打印它?
它应该抛出一个错误,就像在私有访问修饰符中一样,不是吗?