什么是方法重写
各个子类对象是可以通过调用父类中的print()方法来输出子类对象的信息
但是父类中的print()只能输出相同的属性信息(昵称、健康值、亲密度)
不能输出每个子类中独有的信息,从而说明父类里的print()方法不能够满足子类对象的使用
此时需要对父类中的print()方法进行升级(方法重写)
子类根据需求对从父类继承的方法进行重新编写
重写时,可以调用super.方法的方式来保留父类的方法
构造方法不能重写
方法重写规则
- 方法名相同
- 参数列表相同
- 返回值类型相同或者时其子类
- 访问权限不能严于父类
- 父类的静态方法不能被子类覆盖为非静态方法,父类的非静态的方法不能被子类覆盖为静态方法
- 子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)
- 父类的私有方法不能被子类覆盖
- 不能抛出比父类跟多的异常
Object类中进场被重写的方法
| 方法 | 说明 |
|---|---|
| tostring() | 返回房钱对象本身的有关信息,按字符串对象返回 |
| equals() | 比较两个对象是否是同一个对象,是则返回true |
| hashCode() | 返回该对象的哈希码值 |
| getClass() | 返回当前对象所属的类信息,返回Class对象 |
Object类的 equals()方法
比较两个对象是否是同一个对象,是则返回true
操作符 ==
* 简单数据类型,直接比较值。如 1 == 2
* 引用类型,比较两者是否为同一对象
重写 equals()
重写比较规则,判断两名学员(Student)是否为同一对象
- Student 相关属性
- id(学号)、name(姓名)、age(年龄)
- 如果两个学员的学号遗迹姓名相同,则为同一对象
==instanceof ==用于判断一个引用类型所引用的对象是否是一个类的实例



