2012-12-15 6 views
10

Il ruby ​​supporta l'ereditarietà in modo che possa ereditare da più classi.Il ruby ​​supporta l'ereditarietà multipla

+4

è google rotto? non il mio downvote BTW –

+1

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

+4

@MitchWheat Ho bisogno di risposte autorevoli, se devo guardare in Google non avrei bisogno di un sito come stackoverflow.com. Per favore si astenga se non ha voglia di rispondere. – Joe

risposta

26

No, Ruby non ha ereditarietà multipla. Ruby ha qualcosa di simile però: mixins. Per esempio:

module M; end 
module N; end 

class C 
    include M 
    include N 
end 

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

Nota che mixins sono non ereditarietà multipla, ma invece lo più eliminano la necessità di esso.

+0

è la modalità di ereditarietà di Ruby con mixin simile all'ereditarietà di Java con "implementazione di un'interfaccia"? –

+0

@ 太極 者 無極 而 生 Ordina per. Una classe Java può implementare diverse interfacce nel modo in cui una classe Ruby può includere molti moduli. Ma un'interfaccia Java non ha implementazione, solo metodi astratti, mentre Ruby non ha alcun concetto di metodi astratti e moduli includono un'implementazione. –

+0

@AndrewMarshall Con Java 8 è possibile implementare (predefinito) nelle interfacce. –