接口与多态

在这里插入图片描述
多态的应用实例:二次分发

// Vehicle及其子类
public abstract class Vehicle
{
private String type;
public Vehicle( ) { }
public Vehicle(String s) { type = s; }
public abstract void drivedByFemaleDriver();
public abstract void drivedByMaleDriver();
}

public class Bus extends Vehicle {
public Bus( ) { }
public void drivedByFemaleDriver()
{ System.out.println("A female driver drives a bus."); }
public void drivedByMaleDriver()
{ System.out.println("A male driver drives a bus."); }
}
public class Car extends Vehicle {
public Car( ) { }
public void drivedByFemaleDriver()
{ System.out.println("A Female driver drives a car."); }
public void drivedByMaleDriver()
{ System.out.println("A Male driver drives a car."); }
}

// Driver 及其子类FemaleDriver和MaleDriver
public abstract class Driver {
public Driver() { }
public abstract void drives(Vehicle v );
}
public class FemaleDriver extends Driver{
public FemaleDriver( ) { }
public void drives(Vehicle v){ v.drivedByFemaleDriver(); }
}
public class MaleDriver extends Driver{
public MaleDriver( ) { }
public void drives(Vehicle v){ v.drivedByMaleDriver(); }
}

//测试代码:
public class DriverTest {
static public void main(String [ ] args) {
Driver a = new FemaleDriver( );
Driver b = new MaleDriver( );
Vehicle x = new Car( );
Vehicle y = new Bus( );
a.drives(x);
b.drives(y);
}
}

输出结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值