2012-12-15 23 views
10

Unterstützt Ruby mehrere Vererbung, so dass ich von mehreren Klassen erben kann.Unterstützt Ruby mehrere Vererbung

+4

ist Google kaputt? nicht mein Downvote BTW –

+1

Kasse [Mixins in Ruby] (http://www.tutorialspoint.com/ruby/ruby_modules.htm) –

+4

@MitchWheat Ich brauche maßgebliche Antworten, wenn ich in Google suchen muss, würde ich keine Website benötigen wie stackoverflow.com. Bitte verzichten Sie, wenn Sie nicht antworten möchten. – Joe

Antwort

26

Nein, Ruby hat keine Mehrfachvererbung. Ruby hat jedoch etwas ähnliches: mixins. Zum Beispiel:

module M; end 
module N; end 

class C 
    include M 
    include N 
end 

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

Beachten Sie, dass Mixins nicht Mehrfachvererbung ist, sondern vor allem die Notwendigkeit, sie beseitigen.

+0

ist Rubys Art der Single-Vererbung mit Mixin ähnlich der Java-Vererbung mit "Implementierung einer Schnittstelle"? –

+0

@ 太極 者 無極 而 生 Sortieren von. Eine Java-Klasse kann mehrere Schnittstellen so implementieren, wie eine Ruby-Klasse viele Module enthalten kann. Aber eine Java-Schnittstelle hat keine Implementierung, nur abstrakte Methoden, während Ruby kein Konzept abstrakter Methoden hat und Module eine Implementierung beinhalten. –

+0

@AndrewMarshall Mit Java 8 können Sie (Standard) Implementierung in Schnittstellen haben. –