从零开始学java(十九)-- 方法重写
子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。
方法的重写需要符合下面的三个要点:
- “==”: 方法名、形参列表相同。
- “≤”:返回值类型和声明异常类型,子类小于等于父类。
- “≥”: 访问权限,子类大于等于父类。
package Chapter_5;
/**
* 测试重写
* @author 与猫子
*
*/
public class TestOverride {
public static void main(String[] args) {
Vehicla v1 = new Vehicla();
Vehicla v2 = new Horse();
Vehicla v3 = new Plane();
v1.run();
v1.stop();
v2.run();
v2.stop();
v3.run();
v3.stop();
}
}
class Vehicla{
//交通工具类
public void run() {
System.out.println("run......");
}
public void stop() {
System.out.println("stop.....");
}
}
class Horse extends Vehicla{
//@override
public void run() {
System.out.println("run,der~~");
}
public void stop() {
System.out.println("yu~~~~");
}
}
class Plane extends Vehicla{
//@override
public void run() {
System.out.println("fly~~~~");
}
public void stop() {
System.out.println("you can't stop!");
}
//public Plane testReturn() {
// return new Vehicla();//出现报错,因为返回值类型大于Plane
//这里返回值类型的大小比较可以在类名上按“Ctrl+T”显示类的继承树,可以看见Plane在Vehicla下面
//}
}