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