< :the previous in number
^ :the list in numerical order
> :the next in number
P :the previous artilce (have the same parent)
N :the next (in thread)
|<:the top of this thread
>|:the next thread
^ :the parent (reply-to)
_:the child (an article replying to this)
>:the elder article having the same parent
<:the youger article having the same parent
---:split window and show thread lists
| :split window (vertically) and show thread lists
~ :close the thread frame
.:the index
..:the index of indices
On 1/11/07, Helder Ribeiro <helder / gmail.com> wrote:
>
> Wilson Bilkovich wrote:
> > On 1/9/07, Kumar Tnj <senvenit2003 / india.com> wrote:
> > > Hi,
> > >
> > > Is ruby supports multiple inheritence.
> > > I am the beginner of ruby.
> > > simple code for ruby multiple inheritence.
> > >
> >
> > To expand on what hemant said.. try running this code.
> >
> > class Useless
> > def six
> > 6
> > end
> > end
> >
> > module AlsoUseless
> > def seven
> > 7
> > end
> > end
> >
> > class Thing < Useless
> > include AlsoUseless
> > def five
> > 5
> > end
> > end
> >
> > thing = Thing.new
> > puts thing.five
> > puts thing.six
> > puts thing.seven
> > puts Thing.ancestors.inspect # Useless and AlsoUseless are shown.
>
> I'm also new to Ruby and I've never used anything with multiple
> inheritance. This code is enlightening but I can't see how this is
> different from multiple inheritance in practice except that AlsoUseless
> is not a class and you don't use the '<' sign with it.
>
> In which cases do the two scenarious (M.I. and mixins) cause different
> behaviors? Is it only related to member visibility? If yes, how
> exactly?
>
Multiple Inheritance can be extremely complex, as Gregory Brown has pointed out.
One complication is that you now have to have rules to 'break ties'
when you write:
def hello
super
end
What if each of the parent classes has their own implementation of
'hello'. Which one is invoked? Mix-ins simplify this greatly, because
there is still only one unambiguous superclass.
If you have used Java, they are like having Interfaces containing
working code, as well as just a list of what should be implemented.