Inheritance is a special relationship between classes that exploits the
commonality in managed object class definitions. Managed object classes are
arranged in a hierarchy known as the inheritance tree (also known as the
object class hierarchy, or the class tree). A class in this tree is known as
a sub-class of its parent in the tree (its superclass). A subclass inherits
all
characteristics of all of its subclasses. There is one basic managed object
class, <#2277#> top<#2277#>, and all other classes are subclasses of <#2278#> top<#2278#>. The classes are more
specialized going down the inheritance tree.
Inheritance is used in specifying object classes. A new object class is
specified as a subclass of a defined class. Only additional characteristics
(attributes, operations, behaviour, and/or notifications) are specified.
The refinement method uses strict-single inheritance (inheritance of all
characteristics from a single superclass). A complementary approach is the
construction method, which uses strict multiple inheritance (inheritance of
all characteristics from each of several superclasses).
Once a class has been designed and formally specified, the class is given a
globally unique registered identifier which is used in communications.
The instance behaviour that corresponds to this superclass-subclass
relationship is that an instance of a particular managed object class has the
ability to act as either its defined class, or any of its superclasses (since
the superclasses' characteristics are inherited). This capability is known as
polymorphism. For example, the class ;SPM_quot;modem;SPM_quot; could be defined as a subclass
of ;SPM_quot;equipment;SPM_quot;, so that in instance of ;SPM_quot;modem;SPM_quot; also could also behave as an
instance of ;SPM_quot;equipment;SPM_quot;. In some cases, it may be necessary for
implementation reasons to restrict the set of superclasses that an instance
can imitate.