LiT*_*Tle 1 java access-modifiers
根据第二个文档表(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);
}
}
Run Code Online (Sandbox Code Playgroud)
如果无法从子类访问没有访问修饰符的成员,为什么在此示例中打印它?
它应该抛出一个错误,就像私有访问修饰符一样,不应该吗?
看起来像两个阶级(Class1 & Class2)是在同一个包,以及同级别HelloWorld它的自我,并default modifier与在课堂上或包装可见.
default modifier或者no modifier在java中具有重要性,它private与文档中定义的访问级别不同.
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |