ruby中include模塊的特性

一.疑惑點

    ruby中引入模塊module的概念,在定義類的時候能夠經過對模塊進行組裝來生成需求的類,如此能夠在繼承的基礎上加強代碼的複用行. ruby

    若是類所include的模塊中包含相同的方法時會出現什麼狀況呢? 測試

二.測試

1.在一個類中引用多個包含相同方法名方法的模塊.


module Robot1
  def say
    puts "1"
  end
end

module Robot3
  def say
    puts "3"
  end
end

module Robot2
  def say
    puts "2"
  end
end

class Robot
  include Robot1
  include Robot2
  include Robot3
end

robot=Robot.new
robot.say
輸出結果: 3


結果分析: 最後面include的模塊會覆蓋以前模塊的相同方法. spa

2.調換模塊的引用順序


class Robot
  include Robot1
  include Robot3
  include Robot2
end
輸出結果: 2


結果分析:支持一開始的猜測. code

3.重複引用相同模塊會怎麼樣?

class Robot
  include Robot1
  include Robot2
  include Robot3
  include Robot2
end
輸出結果: 3

結果分析: 重複引用將不會編譯的時候不會在執行. 繼承


自學階段,若有不對,敬請指出. 編譯

相關文章
相關標籤/搜索