# Java的修饰符

Java大家常说的有4种修饰符,但实际上应该说是4种修饰方式,3种修饰符,即:private,protected,public。还有一种情况是不加修饰符,也就是常说的default(并不是要加default修饰,只是指默认不加修饰符的情况)。

修饰符可以加在类上,也可以加在变量上,可用于控制访问,也可用于控制继承,接下来就介绍下访问和继承,特别是继承,是大家容易迷糊的。

# 修饰符的访问控制

一个表格说清楚(网上到处都是)。

访问修饰符\作用范围 所在类 同一包内其他类 其他包内子类 其他包内非子类
private 可以访问 不可以 不可以 不可以
缺省 可以 可以 不可以 不可以
protected 可以 可以 可以 不可以
public 可以 可以 可以 可以

# 修饰符的继承控制

# 父类可见的方法,子类重写后,修饰符的访问控制必须大于等于父类
  1. 父类中的public方法,子类中也必须为public
  2. 父类中的protected方法,子类中也必须是protected或public
  3. 父类中的缺省修饰符方法,子类也必须也是缺省的或protected或public
# 父类中的私有方法,对子类是不可见的

因此子类写与父类相同的方法,都不构成重写,此时方法只属于子类自己。

# 子类出现与父类同名的变量,两个变量不会覆盖,会同时存在

出现同名变量,默认使用子类的,要使用父类变量必须用super指定。

修改于: 8/11/2022, 3:17:56 PM