与其他基于类的语言一样,可以通过继承组合多个类定义。 类定义可以扩展(或继承)多个其他类。这些类又可以扩展其他类。
请注意,类不能继承 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 superclass
do ##super()
//do more things....
}
注意:##super
不区分大小写。
全部0条评论
快来发表一下你的评论吧 !