访问修饰符
Java语言中有4种访问修饰符:private、default(默认)、protected、public。
private:成员变量和方法都只能在定义它的类中被访问,其子类不能对其进行访问。对成员变量进行获取和更改,一般用get(),set() 方法,体现了Java面向对象的封装思想。
default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。
protected:只能被本包中的类以及该成员所属类的子类访问(即使子类在不同的包中)。
public :能被所有类访问。
private、protected、static不能修饰类
类中成员的访问控制
类中的成员分为三类 : 成员变量、成员方法、成员内部类(内部接口)
类中的(全局)"成员"可以使用所有的访问控制权限
注意:这里的类中的成员是指类的全局成员,并没有包括局部的成员(局部变量、局部内部类,没有局部内部接口)。或者说,局部成员是没有访问权限控制的,因为局部成员只在其所在的作用域内起作用,不可能被其他类访问到。
抽象方法的访问权限
普通方法可以使用上述四种访问修饰符,但抽象方法却有一个限制:不能用private修饰,即抽象方法不能是私有的,否则,子类就无法继承并实现抽象方法。
接口成员的访问权限
接口由于其特殊性,所有成员的访问权限都被定下,下面是接口成员的访问权限:
变量: public static final
抽象方法、内部抽象类: public abstract
静态方法: public static,JDK1.8后才支持
内部类、内部接口 : public static
构造器的访问权限
构造器的访问权限可以是以上四种权限中的任意一种。
注意:因为子类的构造器初始化时,都要先调用父类的构造器,所以一旦父类构造器不能被访问,那么子类的构造器将调用失败,意味子类继承父类失败。