8.重写
重写:需要有继承关系,子类重写父类的方法!
-
方法名必须相同
-
参数列表列表必须相同
-
修饰符:范围可以扩大但不能缩小:public>Protected>Default>private
-
抛出的异常:范围,可以被缩小,但不能扩大:ClassNotFoundException --〉 Exception(大)
重写,子类的方法和父类必要一致;方法体不同!为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足!
Person类
package com.wang.oop.override;
public class Person {
public void say(){
System.out.println("Person 说话");
}
}
Student类
package com.wang.oop.override;
//学生继承人
public class Student extends Person{
/*public void say(){
System.out.println("Student 说话");
}*/
//也可以使用快捷键command + N
@Override
public void say() {
super.say();
}
}
启动类
package com.wang.oop.override;
public class Application {
public static void main(String[] args) {
//当Person/Student的关键字都是static时
Student student01 = new Student();
student01.say(); //输出结果:Student 说话
Person person01 = new Student();
person01.say();//输出结果:Person 说话
System.out.println("-------------------------------");
//当Person/Student的关键字不是static时
Student student02 = new Student();
student02.say(); //输出结果:Student 说话
Person person02 = new Student();
person02.say();//输出结果:Student 说话
//两种输出结果都是一样的,说明父类的say()方法被子类重写了
}
}