ruby中的多态
来源:互联网 发布:淘宝怎么设置周末收货 编辑:程序博客网 时间:2024/06/06 02:42
先来看一下C++中的多态,它是通过vitural来实现的,如下:
class A{public: virtual void f() { printf("A"); }};class B:public A{public: void f() { printf("B"); }}void pf(A *a){ a.f}pf(new A) ------------> "A"pf(new B) ------------> "B"
那么ruby中怎么实现上面的多态的呢?看下面的代码:
class A def f p "A" endendclass B < A def f p "B" endenddef pf(o) o.f if o.respond_to?(:f)endff(A.new)ff(B.new)与C++的pf函数相比,不需要指明参数类型,我们只需要判断该对象是否具有某种行为,有的话,就可以把它看作是那种类型的对象。这就是duck type
- ruby中的多态
- Ruby Symbol (Ruby中的冒号)
- ruby 的多态
- Ruby中的模块
- Ruby中的数字类型
- Ruby中的SOAP编程
- Ruby中的Continuation
- Ruby/Rails 中的YAML
- Ruby中的数组过滤
- Ruby中的模块
- ruby中的gc
- Ruby中的变量
- ruby 中的 unless
- Ruby中的闭包
- Ruby中的实例变量
- Ruby中的并行赋值
- Ruby中的正则表达式
- Ruby中的数组
- 粉笔网上线,网易前高管离职创业欲打造教育领域的yelp
- [AndEngine] GameSourceCode: Simple Tower Defense
- socket
- SimpleAdapter类使用方法
- iphone开发资源汇总
- ruby中的多态
- 不用if,?:,等判断语句获得两数之中较大的或较小的数
- 精益开发实战:用看板管理大型项目
- Android Drawable来加载网络上的图片
- If only one side of processes crash, the other side of processes do not hang.
- Install Shield 的事件 函数
- 二十二、应用双重锁定检查于单例模式中的问题
- 关于linux ftp配置权限
- 使用fflush清空缓冲区