MATLAB Object-Oriented Programming

(Joyce) #1

Method Conflicts


If two or more superclasses define methods with the same name, then at least one of the
following must be true:



  • The method Access attribute is private so only the defining superclass can access
    the method.

  • The method has the same definition in all subclasses. This situation can occur when all
    superclasses inherit the method from a common base class and none of the
    superclasses override the inherited definition.

  • The subclass redefines the method to disambiguate the multiple definitions across all
    superclasses. Therefore, the superclass methods must not have their Sealed attribute
    set to true.

  • Only one superclass defines the method as Sealed, in which case, the subclass adopts
    the sealed method definition.

  • The superclasses define the methods as Abstract and rely on the subclass to define
    the method.


Event Conflicts


If two or more superclasses define events with the same name, then at least one of the
following must be true:



  • The event ListenAccess and NotifyAccess attributes must be private.

  • The event has the same definition in all superclasses (for example, when all
    superclasses inherited the event from a common base class)


Multiple Inheritance


Resolving the potential conflicts involved when defining a subclass from multiple classes
often reduces the value of this approach. For example, problems can arise when you
enhance superclasses in future versions and introduce new conflicts.


Reduce potential problems by implementing only one unrestricted superclass. In all other
superclasses, all methods are



  • Abstract

  • Defined by a subclass


Subclassing Multiple Classes
Free download pdf