java中,针对不同的修饰词,类及其类中的方法、域都有不同的可见性。以下为针对java中可见性的几点总结。
1.java中的默认包(这个包是没有名称的),对于任何修饰词来说,其中的内容只能对其包内类为可见。
2.对于java中的非默认包中的内容,各修修饰词及其可见性如下表:
作用域 | 当前类 | 同一package | 子孙类 | 其他package |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default(无修饰词) | √ | √ | × | × |
private | √ | × | × | × |
对上表有几点说明:对于default类型修饰词,如果其子孙类与父类如果是位于同一个包内,则子孙类中的方法可以访问无修饰词修饰的父类方法;如果子孙类与父类是位于不同的包内,则子孙类中的方法无法访问父类中的无修饰词修饰的父类方法。对于protected类型修饰词,则子孙类可以访问父类中的protected方法,而其它类则不行。上面提到的父类都是public。
转自:http://blog.sina.com.cn/s/blog_4bd04f990100v71w.html