扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
多态在Java中是如何定义的?
我这样理解:多态需要借助接口来实现,就是所有实现了该特定的接口的类用起来都象他。
什么是duck type?
在Programming Ruby中这样定义:如果对象能够象鸭子那样行走,象鸭子那样呱呱叫,那么解释器会很高兴的把它当做鸭子来对待的。(Programming Ruby 中文版 P367)
一天,我问我一个同事,到底Ruby中有没有多态?
得到一个有趣的答复:弱类型的动态语言,没有抽象类,没有接口,你说有没有多态?
多态很有用,多态是不是只有静态面向对象语言,如Java/C#等才有呢?当然不是了,多态是OO语言的三大特性之一。
而Ruby是纯面向对象的语言,Ruby当然有多态。Ruby的多态特性就是它的duck type。
话不多说,贴代码:
Ruby代码:
|
在Ruby中,class从来(几乎从来)不是type,相反,对象类型是根据对象能作什么决定的,即对象的behavior(method)。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者