Ruby-模組和類

來源:互聯網
上載者:User

標籤:

首先看下他們的關係

  1. irb(main):100:0> String.class
  2. => Class
  3. irb(main):101:0> String.class.superclass 
  4. => Module
  5. irb(main):102:0> String.class.superclass.superclass 
  6. => Object

class < Module < Object

1、類 只能單繼承,但是可以包含多個模組

module AA
  def AA.prints1(str)
    print "A:"+str
  end
end


module BB
  def BB.prints2(str)
    print "B:"+str
  end
end

class CC
  include AA
  AA.prints1("aa")
  include BB
  BB.prints2("bb")
end

2、模組 就和c#介面類似,包含一些公用介面方法,無法執行個體化

類調用模組的兩種方式

A.rb 在方法前加 模組名.方法名 (AA.prints1) , 在其引用類中就可以直接調用 AA.prints1

module AA
  def AA.prints1(str)
    print "A:"+str
  end
end

B.rb 如果沒有加模組名則需要在其引用類中添加 include BB把方法包含進引用類中,相當於繼承了方法,然後就可以直接調用了prints2

module BB
  def prints2(str)
    print "B:"+str
  end
end

Ruby-模組和類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.