多重继承|学习笔记

简介: 快速学习 多重继承

开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理多重继承】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/601/detail/8753


多重继承


目录:

一、相关例子

二、影藏属性

三、多重继承

 

一、相关例子

所示

Class a(object):

Det test(self):

Print(AAA)

Class b(A)

Det test(self):

Print(BBB)

Class C(B)

Det test(self):

Print(CCC)

 

现在的关系很明确,B 继承 C,C 继承 D,现在使 A 和 B 都 继承 object,则

Class a(object):

Det test(self):

Print(AAA)

Class b(object)

Det test2(self):

Print(BBB)

Class C(B)

pass

 

二、影藏属性

类名 . _ bases_ 这个属性可以用来获取当前类的所有父类

 print(C.__bases__)  (<class  ‘__main__.B’>,)

print(B .__bases__)  (<class  ‘object’>,)

 

三、多重继承

一个类中可以有多重父类:在 Python 中是支持多重继承的,也就是我们可以为一个类同时指定多个父类

可以在类名的( )后边添加多个类,来实现多重继承

例:Class C(A  ,B):表示 C 既继承了 A 和 B

多重继承,会使子类同时拥有多个父类,并且会获取到所有父类中的方法

print(C.__bases__)  (<class  ‘__main__.A ’ >, <class  ’__main__.B>)

可用简单的树形结构体现,即

图片2.png

在开发中没有特殊的情况,应该尽量避免使用多重继承,因为多重继承会让我们的代码过于复杂.

如果多个父类中有同名的方法,则会现在第一个父类中寻找,然后找第二个,然后找第三个。多重继承的特点:前边父类的方法会覆盖后边父类的方法.

如图所示

图片3.png

找 D 中 test(),首先,先在自身中找,若自身没有则去第一个父类里找(假设第一个父类是 A),则去A中找,若没有则去 object 中找,若没有再去 B 中找,若还是没有,则去 B 的父类中找,

此时注意:找过一次就不会再找。B 中没有则去第三个父类 C 中找

相关文章
|
4月前
|
编译器 C++
【C++】学习笔记——多态_2
【C++】学习笔记——多态_2
24 0
|
4月前
|
编译器 C++
【C++】学习笔记——多态_1
【C++】学习笔记——多态_1
21 0
|
5月前
|
安全 Java 编译器
Java面向对象之——多态
Java面向对象之——多态
C++学习笔记_04抽象类、多态 2021-04-15
C++学习笔记_04抽象类、多态 2021-04-15
|
Java
Java面向对象之多态
Java面向对象之多态
58 0
|
Java
Java面向对象多态
多态概述 Java 多态是指同一种类型的对象,在不同的情况下有着不同的状态和行为。它是基于继承、重写和向上转型等特性实现的,多态是面向对象编程的三大特征之一,其他两个分别是封装和继承。 Java 多态包括以下三种方式 方法重写(Override) 子类可以对从父类继承的方法进行重写,以便根据子类的需要来覆盖掉父类中的方法实现。这样在调用时,可以根据对象的不同来执行对应的方法。
64 0
|
设计模式
面向对象中多态的理解
面向对象中多态的理解
|
编译器 C++
C++类和对象-继承&多态
C++类和对象-继承&多态
69 0
|
Java
Java面向对象—多态
Java面向对象—多态
72 0
|
Java
Java面向对象三剑客之——多态
今天我们来学习Java多态的知识。在Java中,多态是一种强大的特性,它允许我们在运行时根据不同的对象类型来执行不同的操作,从而使代码更加灵活和可扩展。让我们来探索Java多态的奥秘!
115 0