- 子类中所有的构造方法默认都会访问父类中空参数的构造方法
- 因为子类会继承父类中的数据,可能还会使用父类的数据。
- 所以,子类初始化之前,一定要先完成父类数据的初始化。
- 其实:
- 每一个构造方法的第一条语句默认都是:super() Object类最顶层的父类。
- 子类有参构造会调用父类有参构造。
- 重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)
- B:方法重写的应用:
- 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。
public void eat(){
super.eat();//调用父类的重写方法
System.out.println("Dog eat");
}
08.14_面向对象(方法重写的注意事项)(掌握)
- A:方法重写注意事项
- a:父类中私有方法不能被重写
- b:子类重写父类方法时,访问权限不能更低
- c:父类静态方法,子类也必须通过静态方法进行重写
- 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解(静态只能覆盖静态)
- 子类重写父类方法的时候,最好声明一模一样。
final 关键字
- final修饰特点
- 修饰类,类不能被继承
- 修饰变量,变量就变成了常量,只能被赋值一次,*一般与public与static共用
- 修饰方法,方法不能被重写
- 基本类型,是值不能被改变
- 引用类型,是
地址值
不能被改变,对象中的属性可以改变