python3xiaobaike_2020/chapter7/7-8 python3小白课:类的多态性.md
2025-04-20 23:22:14 +08:00

44 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# python3小白课类的多态性
多态性是面向对象的三大特征之一,多态性常常是基于继承性得来的,它的概念是,当同一个变量在调用同一个方法的时候,可能会呈现出不同的行为,具体呈现的行为由这个调用的变量所代表的对象来决定,这就是类的多态。
咱们用通俗的例子来讲咱们有龟和兔两种动物我们就当做两类吧。这时候龟类和兔类都有赛跑这样的行为我们可以分别把龟类和兔类赋值给同一个变量比如a分别调用a的`赛跑`这个方法他们的呈现行为是不同的龟类是四个小爪子慢慢的爬过去的兔类呢是四个小短腿一跳一跳跑过去的这就是所谓的多态Polymorphism
那么多态性有啥用呢?
我们来看一个小小的例子来理解一下:
```python
# coding:utf-8
class Run:
def run_machine(self, product):
print("--开始运行--")
product.run()
class 烧水壶:
def run(self):
print("烧水咯")
class 烧茶壶:
def run(self):
print("烧茶咯")
a = Run()
a.run_machine(烧水壶())
a.run_machine(烧茶壶())
```
可以看出多态是一种非常灵活的编程机制这时候a这个对象可以不变只需要变传入的参数对象如烧水壶、烧茶壶即可参数对象都有run方法所以在执行`run_machine()`方法的时候可以呈现不同的行为表现,这大大提高了`run_machine()`方法的灵活性。
> [!tip]
>
> 前面的课程中我们讲过python3的变量支持中文这里也试验了一把。
### 单词释义
| 单词 | 释义 |
| ------------ | -------- |
| Polymorphism | 多态性 |
| run | 运行,跑 |
| machine | 机器 |
| product | 产品 |