讲解类的继承,先用无__init__()方法的类讲解,会更容易理解
分三部分讲解
1、单继承(无__init__()方法)
- 继承方式:子类(父类):
- 方法重写:防止执行父类的方法。不想继承父类的某个方法,就自己重写一个一样名称的方法
- 执行父类中方法:1--> super(子类, self).父类方法(参数) # 标识明确,比较常用;2--> 父类名.父类方法(self, 参数)
![b2ad0fba07eaf2d230e1e89528db4dff.png](https://i-blog.csdnimg.cn/blog_migrate/a5c8a31ea268b79491f5c5f79fc56e9d.jpeg)
2、多继承(无__init__()方法)
子类中没有调用的方法,查找方法顺序:
- 父类从左向右找,一直向上找
- 有公共父类时,最后查找公共父类
示例一:父类从左向右找
![f2dfbfd43dcf8eeaf01575b9f4ad7a9e.png](https://i-blog.csdnimg.cn/blog_migrate/b3d61bcfafa691390f1f39aa74941786.jpeg)
父类从左向右找
![34784faab13f53be4870b9d555e5bdba.png](https://i-blog.csdnimg.cn/blog_migrate/c69ad726d38c24707cd328a0ec90c814.jpeg)
父类从左向右找--草图
示例二:父类从左向右找,一直向上找
![4c87bc491e305a5caf239ac1493b4d9f.png](https://i-blog.csdnimg.cn/blog_migrate/bfc77012521b449b5e81685593965868.jpeg)
父类从左向右找,一直向上找
![7e209921dcf775d9d31f06d9481f1405.png](https://i-blog.csdnimg.cn/blog_migrate/4ec0bc47b67bfa0e44c54d3c8e4e5d43.jpeg)
父类从左向右找,一直向上找--草图
示例三:有公共父类时,最后查找公共类
![c120e5d31bc695bc9886fa17667175ff.png](https://i-blog.csdnimg.cn/blog_migrate/6c16b573958028b56f7cf5f10c8a0b0b.jpeg)
有公共父类时,最后查找公共类
![2c549a800272f5b2b34d00221fd98697.png](https://i-blog.csdnimg.cn/blog_migrate/5c80539ec9a965279bcc7ae4de61c343.jpeg)
有公共父类时,最后查找公共类--草图
示例四:父类中调用方法,要到子类中调用
![841821ad1939bb9495673454ed7eb71f.png](https://i-blog.csdnimg.cn/blog_migrate/e564d85eb3bd57f58e24eaae8ef5e7f6.jpeg)
父类中调用方法,到子类中调用
![b211eab2db90977a328d37f2d86c2f9c.png](https://i-blog.csdnimg.cn/blog_migrate/c7adb67116f3f00c2319edd9027f3c97.jpeg)
父类中调用方法,到子类中调用--草图
3、单继承(带__init__()方法)
- __init__()方法:父类有,子类没有,自动调用父类__init__()方法
- __init__()方法:父类有,子类有,手动调用父类__init__()方法
自动调用__init__()
![a7c89c816bb13b29774f282ec4e7aad4.png](https://i-blog.csdnimg.cn/blog_migrate/01acb6075009040915bb4db3d3b61fea.jpeg)
手动调用__init__()
![7680aff867752dbc03f5ef0269a36060.png](https://i-blog.csdnimg.cn/blog_migrate/4887d77631865fc42afe8f1b5209f3c7.jpeg)
别忘记点赞、关注哦