1、public
作用范围为整个工程。
2、private
作用范围为单个类。
3、缺省(default)
作用范围为单个包。
4、protected
protected的作用范围介于default和public之间,下面根据protected与public和default的区别分开讨论
(1)protected和deault
以修饰方法为例,子类继承父类时,子类可以调用父类的protected修饰的方法,不可调用default修饰的方法。
代码结构如下:
A包中类A的代码
package A;
public class A {
protected void testA(){}
A(){
System.out.println("A");
}
<pre name="code" class="java"><span style="white-space:pre"> </span>/* 这里多一句,不同类型修饰符(如int、string)表示不同函数,protected和default则会提示函数重名
<span style="white-space:pre"> </span>protected A(){
System.out.println("A");
}
*/A(int i){System.out.println("A5"+i);}}
在test01.java中,重写构造函数会提示构造函数A()不可视
(1)protected和public
在将A的构造函数改为protected修饰,子类test01的构造函数不会提示错误,但是在A生成的实例testa依然会报错,提示构造函数A()不可视