美文网首页
python面向对象特性多继承(概念、构造方法、代码演练、使用注

python面向对象特性多继承(概念、构造方法、代码演练、使用注

作者: 可可里西 | 来源:发表于2022-09-15 16:36 被阅读0次

Python中面向对象中的三大特性分别是:封装、继承、多态。继承,子类可以拥有父类的所有属性和方法,之前讲到过单继承,每个子类只有一个父类这种情况叫做单继承。下面讲继承的另外一种情况,多继承。

一、多继承概念、语法

多继承概念:

子类可以拥有多个父类,并且具有所有父类的属性和方法

例如:孩子会继承自己的父亲和母亲的特性

图片1.png

语法:

class 子类名(父类名1, 父类名2...):      
    pass

代码体验:

class A:

    def test(self):
        print("test方法")


class B:

    def demo(self):
        print("demo方法")


class C(A, B):
    pass


# 创建子类对象
c = C()

c.test()
c.demo()

执行结果:

图片2.png

多继承好处:

可以让子类对象同时具有多个父类的属性和方法。

继承这个特性就是保证我们在开发过程中尽量的不让相同的代码重复的编写,降低代码的冗余度,如果两个父类的代码都已经开发完成,在实际开发中希望有一个类的对象具有两个父类的方法,就可以创建一个子类,让这个子类继承自多个父类。

二、使用多继承的注意事项

问题: 如果不同的父类中存在同名的方法,子类对象在调用方法时会调用哪一个父类中的方法呢?

开发时,应该尽量避免这种容易产生混淆的情况。如果父类之间存在同名的属性或者方法,应该尽量避免使用多继承。

图片3.png

代码体验:

class A:

    def test(self):
        print("A --- test方法")

    def demo(self):
        print("A --- demo方法")


class B:

    def demo(self):
        print("B --- demo方法")

    def test(self):
        print("B --- test方法")


class C(A, B):
    pass


# 创建子类对象
c = C()

c.test()
c.demo()

执行结果:

图片4.png

此时,class C(A, B)中A在B之前,让子类先继承自A再继承自B,那么我们再换个顺序看看:

图片5.png

虽然说我这里知识简单的换下父类的位置,结果就变了。

友情提示:具体调用哪一个父类的方法,在底层上是有专门的处理方式的,并不是在代码中简单的调整下父类的顺序。

下一篇文章是基于这篇文章的科普知识,分别是Python中的MRO —— 方法搜索顺序、新式类和旧式(经典)类。

更多相关Python教程可以移步去Python自学网 ,从基础入门免费课程开始,逐步深入学习python全栈体系课程,适合新手入门到精通全栈开发。

相关文章

  • python面向对象特性多继承(概念、构造方法、代码演练、使用注

    Python中面向对象中的三大特性分别是:封装、继承、多态。继承,子类可以拥有父类的所有属性和方法,之前讲到过单继...

  • 【Java】面向对象:继承、组合和多态

    一. 面向对象三大特性之继承 1. 继承的概念 继承(inheritance)机制:是面向对象程序设计使代码可以复...

  • 从基础代码深入js面向对象

    认识面向对象 1、面向对象中的概念: 一切事物皆对象 对象具有封装和继承特性 信息隐藏 基本面向对象 函数构造器构...

  • 计算机二级msoffice选择题干货整理(一)程序设计基础

    1.面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出...

  • 19年3月二级C--程序设计基础

    1.面向对象方法是一种运用对象,类,封装,继承,多态和信息等概念来构造,测试,重构软件的方法。面向对象方法从对象出...

  • Objective-C初始化方法

    一、继承 面向对象的三大特性:封装,继承,多态。⾯向对象提供了继承特性。继承既能保证类的完整,又能简化代码。面向对...

  • Python中的继承

    Python编程语言很容易学习,可以使用过程性编程方法和面向对象编程方法。继承是面向对象编程中的一个这样的概念。代...

  • Swift/OC多态-随想

    我们知道面向对象三大特性封装、继承、多态,然而OC我认为严格意义上来说不算是纯面向对象语言,例如它没有构造器的概念...

  • Python面向对象-类的继承

    继承是面向对象的重要特性之一,作为面向对象的Python,接下来让我们探讨一下Python的继承机制 为什么继承?...

  • 【Java】JAVA 对象和类

    Java作为一种面向对象语言。支持以下基本概念:多态 继承 封装 抽象 类 对象 实例 方法 重载 构造方法 每个...

网友评论

      本文标题:python面向对象特性多继承(概念、构造方法、代码演练、使用注

      本文链接:https://www.haomeiwen.com/subject/iitdortx.html