Every object is a direct instance of exactly one type. It may also be indirectly an instance of more than one type through inheritance. Typing in Eiffel is static. The first two denote possible run-time components that either reference an object or are and actual object, respectively. See also entry under 9.5 aggregates .
Every class is a type.
Inheritance and Delegation Eiffel uses a multiple inheritance model. Subclasses may inherit from one or more superclasses. A class may also inherit from one class many times. This is repeated inheritance. Inheritance in Eiffel is used both as a module extension mechanism and a type refinement mechanism.