方法重写:Override: 需要有继承关系,子类重写父类的方法!
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大,但不能缩小:public>protected>defalut>private
- 抛出异常:范围,可以被缩小,但不能扩大;ClassNotFoundException-->Exception
重写,子类的方法和父类的必须要一致;方法体不同!
为什么需要重写?
- 父类的功能,子类不一定需要,或者不一定满足!
- Alt+Insert:Override;
1 package com.oop.demo05; 2 3 //重写都是方法的重写,和属性无关 4 public class B { 5 public void test() { 6 System.out.println("B=>test"); 7 } 8 }
1 package com.oop.demo05; 2 3 //继承 4 public class A extends B { 5 6 //Override 重写 7 @Override//注解:有功能的注释! 8 public void test() { 9 System.out.println("A=>test()"); 10 } 11 }
1 package com.oop; 2 3 import com.oop.demo05.A; 4 import com.oop.demo05.B; 5 6 public class Application { 7 8 public static void main(String[] args) { 9 10 //方法的调用只和左边,定义的数据类型有关 11 A a = new A(); 12 a.test();//A=>test 13 14 //父类的引用指向了子类 15 B b = new A();//子类重写了父类的方法,以子类重写过后的为准! 16 b.test();//A=>test 17 } 18 }