Shared Inheritance in Eiffel
Inheritance is the features which are supported by Eiffel. Multiple inheritance is the default implementation of the Eiffel programming language. The exception is not the default implementation of the Eiffel programming language by which unexpected error should be caught.
In multiple inheritance method can be overridden or shared by the derived class. In shared method value of that method is not changed in the derived class but in overridden method value of that method is changed in the derived class.
Multiple inheritance result in ambiguity as two parents have one method with the same name. Due to this there are name clashes because child class is unaware about the method from which it is to be inherited. These ambiguities are removed by Eiffel using a rename subclass in Eiffel.
In Eiffel, it is impossible to detect whether the method is shared or replicated just by looking the class. As in case of replication only rename subclass are used which help in identifying that method are replicated in the derived class.