麻烦老师5-13的这两种形式有什么不同

麻烦老师5-13的这两种形式有什么不同

http://img1.sycdn.imooc.com//climg/5b829dfa000133ce05670421.jpg

老师,图中的两种对象实例化测试的结果都一样。鉴于水平有限,还想知道,这两种实现方式哪种更好。有什么区别?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

单看上述代码这两种都可以。关键是它与项目案例的结合,以及应用场景。例如你定义了一个方法

test(IFly fly){fly.fly();}

这样的就此方法更通用。如果你定义成

test(Plane fly){fly.fly();}
test(Bird fly){fly.fly();}
test(Ballon fly){fly.fly();}

通用性就太差了。并且你第一种的方式定义,有一天,plane1要改成无人机类,或者私人专机类,都很方便。祝:学习愉快

  • 麒麟岛主 提问者 #1
    意思是通过接口形式进行实例化,通用性更好,对今后的多数项目案例和应用场景也更为适用吗?
    2018-08-27 15:25:03
  • 好帮手慕雪 回复 提问者 麒麟岛主 #2
    嗯,是的。
    2018-08-27 16:35:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师