方法重写
在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。
方法的重写需要符合下面的三个要点:
1、“==”:方法名、形参列表相同。
2、“<=”:返回值类型和声明异常类型,子类小于等于父类;
3、“>=”:访问权限,子类大于等于父类。
1 public class overrideTest { 2 public static void main(String[] args) { 3 Vehicle v1 = new Vehicle(); 4 Vehicle v2 = new Horse(); 5 Vehicle v3 = new Plane(); 6 v1.run(); 7 v2.run(); 8 v3.run(); 9 v2.stop(); 10 v3.stop(); 11 } 12 } 13 14 class Vehicle{ //交通工具 15 public void run(){ 16 System.out.println("跑......"); 17 } 18 public void stop(){ 19 System.out.println("停止不动!"); 20 } 21 } 22 23 class Horse extends Vehicle{ //马类,继承交通工具 24 public void run(){ //重写父类方法 25 System.out.println("四蹄飞奔"); 26 } 27 } 28 29 class Plane extends Vehicle{ 30 public void run(){ //重写父类方法 31 System.out.println("在天上飞!!!"); 32 } 33 public void stop(){ //重写父类方法 34 System.out.println("在天空不能悬空停止。危险!!!"); 35 } 36 }