2012-12-15 119 views
10

支持紅寶石多繼承這樣我就可以繼承多個類。紅寶石支持多繼承

+4

是谷歌壞了?不是我downvote BTW –

+1

結帳[混合在Ruby](http://www.tutorialspoint.com/ruby/ruby_modules.htm) – 2012-12-15 02:42:28

+4

@MitchWheat我需要權威的答案,如果我必須看看谷歌我不會需要一個網站像stackoverflow.com。如果你不想回答,請棄權。 – Joe

回答

26

不,Ruby沒有多重繼承。 Ruby有類似的東西:mixins。例如:

module M; end 
module N; end 

class C 
    include M 
    include N 
end 

C.ancestors #=> [C, N, M, Object, Kernel, BasicObject] 

需要注意的是混入是多重繼承,而是大多是消除它的必要性。

+0

是Ruby的單一繼承與mixin類似於Java的單一繼承與「實現接口」的方式? –

+0

@太極者無極而生排序。 Java類可以像Ruby類包含許多模塊一樣實現多個接口。但是Java接口沒有實現,只有抽象方法,而Ruby沒有抽象方法的概念,模塊包含實現。 –

+0

@AndrewMarshall使用Java 8,您可以在接口中實現(默認)實現。 –