方法重写
方法重写
-
重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大但不能缩小! public > protected > default > private
4.抛出的异常:范围,可以缩小,但不能扩大 ClassNotFoundException --->Exception(大) -
重写,子类的方法和父类必要一致;方法体不同!
-
为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足! -
package com.oop.demo05; //重写都是方法的重写,与属性无关 public class B { // public static void test(){ // System.out.println("B=>test()"); // } public void test(){ System.out.println("B=>test()"); } } //--------------------------------------------------------- package com.oop.demo05; //继承 public class A extends B { // public static void test(){ // System.out.println("A=>test()"); // } //Override 重写 @Override//注解:有功能的注解 public void test() { System.out.println("A=>test()"); } } //--------------------------------------------------------- package com.oop; import com.oop.demo05.A; import com.oop.demo05.B; public class Application { //静态的方法和非静态的方法区别很大! //静态方法:方法的调用只和左边(定义的数据类型)有关 //非静态:重写 public static void main(String[] args) { A a = new A(); a.test(); //父类的引用指向了子类 B b = new A();//子类重写(只和非静态方法有关)了父类的方法 b.test(); } }