44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# 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 | 产品 | |