From: Yukihiro Matsumoto Date: 2012-11-05T05:04:07+09:00 Subject: Re: Support for multiple Inheritance by classes Hi, In message "Re: Support for multiple Inheritance by classes" on Mon, 5 Nov 2012 01:55:36 +0900, Ross Konsolebox writes: |Updater |OneTimeUpdater < Updater |DaemonUpdater < Updater | |Then the utility was stable. After some time I decided to port it. | |ServiceUpdater < DaemonUpdater, Daemon (External Class) As a general principles, multiple inheritance can be replaced by modules+mix-in. |And this time this was not possible. I now have to decide whether I have |to merge all codes from Updater to DaemonUpdater to make it work with |ServiceUpdater or use another Class to Inherit Daemon that would control |ServiceUpdater which would really be a hassle design-wise. No matter how |you look at multi-inheritance would be the easiest form. Other |variations would be just workarounds or redundant forms. It might be "work around". But you have to pay the price of inheritance graph complexity and resolving conflicts anyway. Do you fully understand C3 algorithm that CLOS uses to resolve multiple inheritance priority order. I don't. That's one of the reason I didn't put multiple inheritance in to Ruby. So, you have options. a) Use mix-ins, compromising "work around". b) just go to a language with multiple inheritance. matz.