Java方法的重写
Java方法的重写
重写:需要有继承关系,子类重写父类的方法!
- 方法名必须相同
- 参数列表列表必须相同
- 修饰符:范围可以扩大但不能缩小 public > protected > default > private
- 抛出的异常:范围可以被缩小,但不能扩大
重写,子类的方法和父类要一致,方法体不同!
为什么要重写:
-
父类的功能,子类不一定需要,或者不一定满足!
IDEA快捷键:Alt + insert :override;
package com.cnblogs;
//本类用于实现
public class Application {
public static void main(String[] args) {
//实例化父类
Person person = new Person();
//实例化子类
Student stu = new Student();
person.getName();//父类属性
stu.getName();
//子类属性
//父类属性
}
}
package com.cnblogs;
/*
person类
*/
public class Person {
//父类属性
private String name = "父类属性";
//父类方法
public void getName(){
System.out.println(name);
}
}
package com.cnblogs;
/*
student类
*/
public class Student extends Person{
//子类属性
private String name = "子类属性";
//子类重写父类方法
@Override
public void getName() {
System.out.println(name);
//super关键字
super.getName();
}
}
总结:
重写的要求:两同两小一大
两同:方法名 参数列表 要完全一致
两小:
子类返回值类型小于等于父类的返回值类型(注意此处说的是继承关系,不是值大小)
子类抛出异常小于等于父类方法抛出异常
一大:子类方法的修饰符权限要大于等于父类被重写方法的修饰符权限