1. protected访问控制符
- protected访问控制符是专门为继承打造的,protected可见性=default+对子类可见 (对自己的包可见和对其子类可见)
- 子类覆盖父类的方法,不可以用可见性更小的修饰符,但是可以用更高的修饰符(父类定义为protected,子类可以定义为protected或public)
原因:子类覆盖父类方法时,父类的引用指向子类的对象,此时引用是有权限调用子类的方法的,但是此时定义为private就会出错;
2. 修饰符
- final用在不同的地方有不同的作用,但是本质都很相似
- final修饰类:不可被继承
- final修饰方法:不能被子类覆盖
- final修饰变量:不可被重新赋值 final修饰成员变量时必须要赋值,在声明或者构造函数里赋值,且只能赋值一次
- final不能用来修饰构造方法
- 若果final定义了一个引用,则引用指向对象是固定了,不能指向其他对象,但是对象里的成员变量值是可以修改的