0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中类继承的基本规则

科技绿洲 来源:技术理科直男 作者:技术理科直男 2023-09-20 14:24 次阅读

继承规则

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

请注意,类不能继承 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 superclass
  do ##super()
  //do more things....
}

注意:##super 不区分大小写。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译器
    +关注

    关注

    1

    文章

    1634

    浏览量

    49128
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13623
  • python
    +关注

    关注

    56

    文章

    4796

    浏览量

    84664
收藏 人收藏

    评论

    相关推荐

    Python多重继承使用方法

    继承是面向对象编程的一个重要方式,通过继承,子类可以扩展父的功能,Python也具有该特性,除此之外,Python还可以使用多重
    发表于 04-19 14:41

    Python与C#对比

    、private、internal、protected、protectedinternal等的访问修饰符;7. Python没有interface,其只能继承,同时其还支持多继承,而
    发表于 05-14 17:14

    如何使用Python? 优势有哪些?

    。  如何使用Python?  1.在Python,定义是通过class关键字来实现的:  class Student(object
    发表于 07-30 18:08

    浅析多继承派生的虚基

    继承派生与基有何关系?多继承派生与虚基有何关系?
    发表于 09-30 06:26

    python继承

    python继承继承,跟人类繁衍的关系相似。被继承
    发表于 03-08 16:40

    Java继承与派生

    对于面向对象的程序设计语言来说,毫无疑问是其最重要的基础。抽象、封装、继承、多态这四大特性都离不开,只有存在,才能体现面向对象编程的特点,今天我们就来了解一些
    发表于 09-27 10:55 0次下载
    Java<b class='flag-5'>类</b>的<b class='flag-5'>继承</b>与派生

    python开发之‘’讲解

    Python 在尽可能不增加新的语法和语义的情况下加入了机制。这种机制是 C++ 和 Modula-3 的混合。 Python没有在
    发表于 03-15 14:12 1次下载

    C++继承访问级别学习总结(二)

    上一篇文章我们介绍了c++继承学习总结;今天我们继续来分享c++继承
    的头像 发表于 12-24 16:10 743次阅读

    python继承详解

    python继承 继承,跟人类繁衍的关系相似。 被继承
    的头像 发表于 03-08 16:40 3102次阅读

    Python到底是如何实现继承的呢

    简单地说,在python,新建的可以继承一个或者多个。父又可以称为基
    的头像 发表于 08-18 15:46 2372次阅读
    <b class='flag-5'>Python</b>到底是如何实现<b class='flag-5'>继承</b>的呢

    SystemVerilog继承

    继承是基于的面向对象编程(object-oriented pro - gramming)的最重要特性之一。
    的头像 发表于 11-15 09:47 986次阅读

    简述继承

    继承:一个继承另一个,自动拥有这个的属性和方法,类似于包含与被包含的关系。被
    的头像 发表于 02-17 15:00 1028次阅读
    简述<b class='flag-5'>类</b>的<b class='flag-5'>继承</b>

    python子类定制父及多态调用介绍

    python通过子类继承来定制子类的行为。 ## 1.1 重写方法 (1)如果子类和超有同名方法,根据搜索树
    的头像 发表于 02-23 14:51 628次阅读

    网络工程师学Python-继承概念介绍

    Python 继承是一种重要的面向对象编程概念。通过继承,我们可以定义一个新的,它继承
    的头像 发表于 04-20 16:56 488次阅读

    Python继承详解

    Python 继承是一种重要的面向对象编程概念。通过继承,我们可以定义一个新的,它继承
    的头像 发表于 04-20 16:56 1294次阅读