Obtuve una superclase Base
y un grupo de clases derivadas, como Base::Number
, Base::Color
. Me gustaría poder utilizar esas clases secundarias como si heredé de decir Fixnum
en el caso de Number
.Herencia de clase de tipo herencia múltiple en ruby
¿Cuál es la mejor manera de hacer esto, sin dejar de responder adecuadamente al is_a? Base
?
Por lo tanto, debería ser capaz de hacer
Number.new(5) + Number.new(6) # => 11
Number.new.is_a? Base # => true
Estoy pensando que podía mezclar la base y sobrescribir el is_a ?, kind_of? y instance_of? métodos, pero con suerte hay una manera más limpia.
oh wow, no sabía is_a? respondió 'true' para mixins, ¡e incluso funciona si el módulo incluido incluye otro módulo! Probablemente usaré esto luego, en lugar de reenviables. ¡Gracias! – cloudhead
typo: debería ser 'world = Stringy.new (" World ")' – rampion