东莞品牌网站设计,国家工信部网站备案查询,页面跳转,百度推广营销方案第三十一章 Classes - 继承规则
继承规则
与其他基于类的语言一样#xff0c;可以通过继承组合多个类定义。 类定义可以扩展#xff08;或继承#xff09;多个其他类。这些类又可以扩展其他类。
请注意#xff0c;类不能继承 Python 中定义的类#xff08;即 .py 文件中…第三十一章 Classes - 继承规则
继承规则
与其他基于类的语言一样可以通过继承组合多个类定义。 类定义可以扩展或继承多个其他类。这些类又可以扩展其他类。
请注意类不能继承 Python 中定义的类即 .py 文件中包含的类定义反之亦然。
以下小节提供了中类继承的基本规则。
继承顺序
使用以下继承顺序规则
默认情况下如果在多个超类中定义了给定名称的类成员则子类将从超类列表中最左边的类中获取定义。如果类定义包含 Inheritance right则子类从超类列表中最右侧的类中获取定义。
由于历史原因大多数类都包含 Inheritance right。
主要的超类
任何扩展其他类的类都有一个主要超类。
无论类使用哪种继承顺序主超类都是第一个从左到右阅读。
对于任何类级编译器关键字给定类使用其主超类中指定的值。
对于持久化类来说主超类尤其重要。
最具体的类型类Most-Specific Type Class
尽管一个对象可以是属于多个类extent的实例例如各种超类的extent但它始终具有最特定的类型类 (MSTC)。当该对象是该类的实例但不是该类的任何子类的实例时类是该对象的最具体类型。
重写方法
类从其一个或多个超类继承方法类方法和实例方法可以覆盖这些方法。如果这样做必须确保方法定义中的签名与要重写的方法的签名匹配。子类方法的每个参数必须使用与超类方法的参数相同的数据类型或者该数据类型的子类。但是子类中的方法可以指定超类中未定义的其他参数。
可以使用 Python 方法覆盖以 ObjectScript 编写的方法反之亦然只要方法签名匹配即可。
在子类的方法中可以引用它在超类中重写的方法。要在 ObjectScript 中执行此操作请使用 ##super() 语法。例如
//overrides method inherited from a superclass
Method MyMethod() [ Language objectscript ]
{//execute MyMethod as implemented in the superclassdo ##super()//do more things....
}注意##super 不区分大小写。