继承和多态是Python面向对象(OOP)的核心特性,继承实现代码复用,多态实现接口统一,二者结合让代码更灵活、易扩展。
一、继承
让一个类(子类/派生类)继承另一个类(父类/基类)的属性和方法,子类可直接使用父类内容,也能重写、扩展父类功能。
1. 基本语法
如图所示
2. 核心关键字
如图所示
- super() :子类中调用父类的属性/方法,避免硬编码父类名,适配多继承。
- issubclass(子类, 父类) :判断一个类是否是另一个类的子类。
- isinstance(实例, 类) :判断实例是否属于某个类(含父类)。
3. 继承类型
- 单继承:子类只继承一个父类(如上例),Python最常用。
- 多继承:子类继承多个父类,语法 class 子类(父类1, 父类2) ,按MRO(方法解析顺序) 查找属性/方法(从左到右、深度优先)。
二、多态
同一方法,针对不同对象,表现出不同的行为,核心是“重写”和“父类引用指向子类对象”,无需关注对象具体类型,只需保证实现统一接口。
1. 核心特点
- 无需额外语法,Python是动态类型语言,天生支持多态(不同于Java的静态多态)。
- 前提:子类重写父类的同名方法(统一接口)。
2. 实用示例
如图所示
定义统一的调用函数,传入不同子类实例,自动执行各自的重写方法:
3. 鸭子类型
如图所示
Python多态的核心体现:“如果一个东西走起来像鸭子、叫起来像鸭子,那它就是鸭子”。
无需显式继承某个父类,只要对象实现了指定方法,就能被统一接口调用,灵活性更高:
三、继承与多态的核心联系
1. 继承是多态的基础:多态依赖子类对父类方法的重写,实现接口统一。
2. 多态是继承的延伸:继承让子类复用父类代码,多态让子类在复用的同时,能灵活定制行为,让代码更易扩展(新增子类只需重写方法,无需修改原有调用逻辑)。
四、经典应用场景
如图所示
定义一个基类(抽象类) 规范接口,多个子类实现具体逻辑,通过统一方法调用不同子类,新增功能时只需加子类,符合开闭原则(对扩展开放,对修改关闭):
关键总结
如图所示
#软件测试面试 #软件测试自学 #编程 #软件测试 #计算机 #程序员的出路 #Python继承与多态 #Python学习 #编程 #软件测试技能#面试官最爱问的问题 #编程小白也能懂 #程序员进阶指南 #Python学习技巧分享 #Python面向对象编程 #Python继承与多态详解 #如何理解Python继承 #多态在Python的应用