您的位置:首页 > 其它

iMAG移动应用快速开发平台简介

2013-12-03 18:02 274 查看
在Ruby中,我们可以把一个模块混入(Mixin)到对象中,从而达到类似多重继承的效果。

下面举几个例子来仔细阐述一下这个问题:

首先定义一个Module:

module Foo

  def bar

    puts "foo";

  end

end


然后我们把这个模块混入到对象中去:



class Demo

  include Foo

end


如上编码后,模块中的实例方法就会被混入到对象中:

d=Demo.new

d.bar


会输出foo字样。

下面我们重新定义一下Demo类:



class Demo

  extend Foo

end


这个时候如果你得到的就是静态调用:

Demo.bar

会输出foo字样。

下面我们再来重新定义一下Demo类:

class Demo

  def bar

    puts "demo"

  end

end


然后使用extend方法调用:

d=Demo.new

d.extend(Foo)

d.bar


会输出foo字样。

下面我们再来重新定义一下Demo类:

class Demo

  include Foo

 

  def bar

    puts "demo"

  end

end


然后使用extend方法调用:

d=Demo.new

d.extend(Foo)

d.bar


会输出demo字样。

其中的味道,自己慢慢体会吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: