一.什么是方法重写
方法的重写或方法的覆盖(overriding)
子类根据需求对从父类继承的方法进行重新编写
重写时,可以用super.方法的方式来保留父类的方法 构造方法不能被重写
1. 重写规则
- 方法名相同
- 参数列表相同
- 返回值类型相同或者是其子类
- 访问权限不能严于父类
- 父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法
- 子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)
- 父类的私有方法不能被子类覆盖
- 不能抛出比父类方法更多的异常
2.代码实例
//f父类
public void print() {
System.out.println("Animal:宠物信息:昵称:" + this.getName() + ",健康值:"
+ this.getHealth() + ",亲密度:" + this.getLove());
public void print() {
super.print();
System.out.println("Dog:品种:" + this.getStrain());
以上遵循
方法名相同- 参数列表相同 ---返回值类型相同-
或者是其子类 访问权限不能严于父类
二.方法重写vs方法重载
1.objectlei
默认为所有类的父元素
2. Object类被子类经常重写的方法
3.Object类的equals()方法