当前位置: 首页 > news >正文

第三十一章 Classes - 继承规则

第三十一章 Classes - 继承规则

继承规则

与其他基于类的语言一样,可以通过继承组合多个类定义。 类定义可以扩展(或继承)多个其他类。这些类又可以扩展其他类。

请注意,类不能继承 Python 中定义的类(即 .py 文件中包含的类定义),反之亦然。

以下小节提供了中类继承的基本规则。

继承顺序

使用以下继承顺序规则:

  1. 默认情况下,如果在多个超类中定义了给定名称的类成员,则子类将从超类列表中最左边的类中获取定义。
  2. 如果类定义包含 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 不区分大小写。

http://www.lryc.cn/news/169871.html

相关文章:

  • 华为云HECS安装docker并安装mysql
  • MQ - 04 基础篇_存储_消息数据和元数据的存储设计
  • JavaScript:隐式转换、显示转换、隐式操作、显示操作
  • 2023全新TwoNav开源网址导航系统源码 | 去授权版
  • Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化)
  • 华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会,助力企业应用集成和数字化转型
  • 虚拟线上发布会带来颠覆性新体验,3D虚拟场景直播迸发品牌新动能
  • Linux arm64 pte相关宏
  • MVCC:多版本并发控制案例分析(一)
  • 以数据为中心的安全市场快速增长
  • AUTOSAR汽车电子嵌入式编程精讲300篇-经典 AUTOSAR 安全防御能力的分析及改善(下)
  • AI绘图提示词Stable Diffusion Prompt 笔记
  • xml元素值需要保留space
  • Eclipse开源代码下载
  • python多线程、进程
  • Vue基础之模板语法介绍
  • 【SLAM】 前端-视觉里程计之特征点
  • Android笔记(二十九):利用python自动生成多语言
  • 【C++STL基础入门】list的运算符重载和关于list的算法
  • 查找内轮廓(孔洞)
  • Git(6)——GitHub
  • 【RocketMQ专题】快速实战及集群架构原理详解
  • [设计模式] 浅谈SOLID设计原则
  • 基于Java+SpringBoot+Vue的旧物置换网站设计和实现
  • Java基本语法2
  • 【数据结构】树的存储结构;树的遍历;哈夫曼树;并查集
  • CSS选择器练习小游戏
  • Python运算符、函数与模块和程序控制结构
  • 微服务保护-Sentinel
  • Doris 导出表结构或数据