java多态与回调

在java中实现回调(CallBack)是通过多态实现的,通过一个方法动态绑定到不同的实现过程。

例如,在做餐时,买菜、洗菜等过程都已经固定,而做菜的形式不同,可能做鱼、米饭、面条等等,这个时候我们可以将做菜的方法写入代码中,在不同的做菜需求时,通过类的继承实现多态的动态绑定:
//主类
public class MyMian {
	public static void dinner(Cook c) {
		System.out.println("买好了菜");
		System.out.println("洗好了菜");
		System.out.println("开始准备做菜");
		c.cook();
		System.out.println("菜已做好");
		System.out.println("正在吃晚餐");		
	}
	
	public static void main(String[] args) {
		System.out.println("-------------调用做鱼的cook方法--------------");
		dinner(new Fish());
		System.out.println("-------------调用做面条的cook方法--------------");
		dinner(new Noodles());
		System.out.println("-------------调用做米饭的cook方法--------------");
		dinner(new Rice());
	}
}


 class Cook {
	public void cook() {
		System.out.println("做晚餐");
	}
}
//实现做鱼的类
class Fish extends Cook{
	public void cook() {
		System.out.println("晚餐做香辣鱼");
	}
}
//实现做面条的类
class Noodles extends Cook{
	public void cook() {
		System.out.println("晚餐做面条");
	}
}
//实现做米饭的类
class Rice extends Cook{
	public void cook() {
		System.out.println("晚餐做米饭");
	}
}
运行结果:
-------------掉用做鱼的cook方法--------------
买好了菜
洗好了菜
开始准备做菜
晚餐做香辣鱼
菜已做好
正在吃晚餐
-------------掉用做面条的cook方法--------------
买好了菜
洗好了菜
开始准备做菜
晚餐做面条
菜已做好
正在吃晚餐
-------------掉用做米饭的cook方法--------------
买好了菜
洗好了菜
开始准备做菜
晚餐做米饭
菜已做好
正在吃晚餐


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值