突然想到一个很简单的例子来说明接口和多态

假设你(对象A)和你同学(对象B)去找工作,有一家公司(对象M)有个部门(对象M内的方法a)招聘翻译人员(方法a的参数是接口a,这时接口a的意思就是翻译技能),你拥有翻译技能(对象A实现了接口a),而你的同学不拥有翻译技能(对象B没有实现接口a),所以,你被该部门录用了(方法a能传递实现了接口a的对象)

这就是接口的用处

然后是多态,延续前面的例子,部门需要翻译一篇文章(接口a有个方法:翻译文章)而你由于有翻译技能(对象A实现了接口a)所以该部门指派你去翻译文章(方法a传递了实现了接口a的对象A)而你的同事(对象Q)也有翻译技能(对象Q实现了接口a)也被指派去翻译文章(方法a传递了实现了接口a的对象Q)

这就是多态

后面属yy……


然后你和你同事一同开始了翻译工作(对象C指派)你翻译着,突然一个单词不认识(wordNotFoundException…)你使用了新英汉词典(catch…翻译方法内捕获)由于字典找出来的词一般意思不太准确,所以为这个单词做了标记(finally…)
而你同事就惨了,刚接到翻译,第二天就出车祸死了(dieException…由于翻译方法内没有捕获该Exception的catch,所以被抛出)你的公司了解到了情况(catch到了dieException)这时有几种情况:
情况1:然后又派了个人过来继续完成你同事的遗稿(调用方法a的重载方法,传递了对象Q1和从dieException内获取的String-遗搞)全部完成后告诉公司有人死了(throw employeeException,内包含死讯)
情况2:先派人给公司打了个电话通知情况(启动一个线程,调用打电话方法,参数是死去员工的情况)然后叫我把他剩下的也翻译掉(接口a内有个方法:add)
情况3:由于员工的缺失导致整个翻译任务中断(catch内直接throw employeeException)分部门得知后上报人事部,人事部上报总公司……(不停的被throw,期间可能做过一些垃圾回收处理与初始化,比如把那人从部门除名,把那人的的办公桌清理完等)最后某个相关部门catch到了这个exception,把他送交了他父母手里(giveTo(B,hisParents)),他父母把他火化(B.beFired(电磁炉);B=null),然后他们夫妻又生一个,出现了一个新对象X。
假设你是上帝(coder……)想要创造这个新对象X,那你的上帝之手就是反射!当然,父母的抽象对象传递进来后可以用instanceof判断父母是哪类人(父类),和哪些性格(接口),再获取一些父母的特性(get对象属性,如黄皮肤,黑头发等)来给新生命做参考,random一下都可以……最后给拼接好的代码使用反射运行起来,就完成了……

yy完毕继续上班
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值