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