乐趣区

关于python:Python面向对象特性多继承概念构造方法代码演练使用注意事项

Python 中面向对象中的三大个性别离是:封装、继承、多态。继承,子类能够领有父类的所有属性和办法,之前讲到过单继承,每个子类只有一个父类这种状况叫做单继承。上面讲继承的另外一种状况,多继承。

一、多继承概念、语法多继承概念:

子类能够领有多个父类,并且具备所有父类的属性和办法

例如:孩子会继承本人的父亲和母亲的个性

语法:

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()

执行后果:

多继承益处:

能够让子类对象同时具备多个父类的属性和办法。

继承这个个性就是保障咱们在开发过程中尽量的不让雷同的代码反复的编写,升高代码的冗余度,如果两个父类的代码都曾经开发实现,在理论开发中心愿有一个类的对象具备两个父类的办法,就能够创立一个子类,让这个子类继承自多个父类。

二、应用多继承的注意事项问题:

如果不同的父类中存在同名的办法,子类对象在调用办法时会调用哪一个父类中的办法呢?开发时,应该尽量避免这种容易产生混同的状况。如果父类之间存在同名的属性或者办法,应该尽量避免应用多继承。

代码体验

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()

执行后果:

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

尽管说我这里常识简略的换下父类的地位,后果就变了。

情谊提醒: 具体调用哪一个父类的办法,在底层上是有专门的解决形式的,并不是在代码中简略的调整下父类的程序。

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

更多相干 Python 教程能够移步去 Python 自学网(www.wakey.com.cn/)从根底入门收费课程开始,逐渐深刻学习 python 全栈体系课程,适宜新手入门到精通全栈开发。

退出移动版