继承覆盖-override
继承的覆盖也成为方法的重写
class TestVehicles{
public static void main(String[]args){
care s=new care();
s.brand="奔驰";
s.color="白色";
s.seats="5";
System.out.println("商标:"+s.brand+",颜色:"+s.color);
s.showCar();
System.out.println("");
Truck x=new Truck();
x.brand="福田";
x.color="红色";
x.load="6.5吨";
System.out.println("商标:"+x.brand+",颜色:"+x.color);
x.showTruck();
}
}
class Vehicles{
String brand;//商标
String color;//颜色
public void run(){
System.out.println("车已启动····");
}
public void showInfo(){
System.out.println("车辆商标:"+brand+"...车辆颜色:"+color);
}
}
class care extends Vehicles{//小汽车
String seats;//座位
public void showCar(){
System.out.println("座位:"+seats);
}
}
class Truck extends Vehicles{//小汽车
String load;//载重
public void showTruck(){
System.out.println("载重:"+load);
}
}
(1) 方法覆盖:子类中定义和父类相同的方法。
方法重载的要求
a. 子类的方法名、形参列表、返回值类型和父类相同
b. 子类的访问修饰符和父类相同或是比父类更宽
(牵扯修饰符的问题)
通过子类型引用调用方法。
如果调用的方法子类覆 盖了父类中的方法,则优先使用子类覆盖的方法。
(4) 注意事项:
- a. 如果子类定义了方法名、形参列表和父类相同;但是返回 值和父类 不同,不能构成方法的覆盖,编译报错。
- b.如果子类定义方法名相同、但是形参列表不同的方法,编 译通过,运行也通过,此语法是方法的重载。