【Java】访问限制符
访问限制符
Java语言中共有四种权限修饰符:
- package:包访问权限(包中所有类都可以访问,但这个包之外就不能访问)
- public:接口访问权限(意味着声明的成员和方法对所有人都可以访问)
- private:无法访问(意味着被声明的成员或方法,除了本类,其他任何类都无法访问)
- protected:继承访问权限,包访问权限,子类(直接子类和间接子类)以及相同包内的其他类都可以访问,其他则不行
不可以用private和protected两个权限修饰类
若不存在父类子类关系,protect在同包中拥有访问权限;若存在父子类关系,需要保证子类产生的对象与父类在同一包中,对象才可调用继承的protected变量和方法
修饰符大小:
public | protected | default | private | |
---|---|---|---|---|
同类 | Y | Y | Y | Y |
同包 | Y | Y | Y | |
子类 | Y | Y | ||
通用性 | Y |
public > protected > 默认(友好) > private
注意:
abstract不能与private、static、final一同修饰方法
-
abstract与private一起使用,相互矛盾:abstract修饰的方法是要给子类重写,private修饰的方法只能本类访问。
-
abstract与static一起使用,无意义:abstact修饰的方法是抽象的,没有实体。而static修饰的方法,类是可以直接调用,调用抽象方法是没有意义的。
-
abstract与final一起使用,相互矛盾:final修饰方法不让子类重写,而abstract修饰的方法就是为了让子类重写。