子类多类

指定多个超

当从多个类继承,使用字符表示超类的组合:

classdef班级名称<SuperClass1&SuperClass2

有关类语法的更多信息,请参阅子类语法

类成员的兼容性

当您从多个超派生的子类,子类继承的属性,方法,并通过所有规定的超类定义的事件。如果多于一个超类定义了一个属性,方法,或具有相同名称的情况下,必须有一个明确的分辨率与所述多个定义。你不能从定义不兼容的类成员的任何两个或多个类派生的子类。

下面是在那里你可以解决名称和定义冲突的各种情况。

属性冲突

如果两个或多个超定义具有相同名称的属性,那么下面的至少一个必须是真实的:

  • 所有的,或所有,但一个属性必须有自己SetAccessGetAccess的属性设置为私人的

  • 属性有在所有超类的定义相同(例如,当所有超类继承的财产从一个共同的基类)

法冲突

如果两个或多个超定义具有相同名称的方法,则至少必须满足以下条件之一:

  • 方法访问属性私人的因此,只有限定的超类可以访问方法。

  • 该方法在所有子类中的定义相同。当所有超类继承公共基类中的方法,并没有超类的覆盖继承的定义会发生这种情况。

  • 子类重新定义的歧义跨越所有超的多个定义的方法。因此,超类方法不能有自己的密封属性设置为真正

  • 只有一个超类定义的方法密封,在这种情况下,子类采用密封的方法定义。

  • 超类定义的方法抽象并依靠子类来定义的方法。

冲突事件

如果两个或多个超定义具有相同名称的事件,则至少必须满足以下条件之一:

  • 事件ListenAccessNotifyAccess属性必须是私人的

  • 该事件具有在所有超类的定义相同(例如,当所有超类继承的事件从一个共同的基类)

多重继承

解析定义一个子类从多个类常常降低了该方法的价值时所涉及的潜在的冲突。例如,当你提高在未来的版本超和引进新的冲突可能会出现问题。

通过实施只有一个无限制父减少潜在的问题。在所有其他超,所有的方法都是

  • 抽象

  • 由子类定义

  • 从无限制的超类继承

当使用多重继承,确保所有超保持自由的定义冲突。

相关话题