# 重载(overloading method)
* 重载是让类以统一的方式处理不同类型数据的一种手段。
<div style="display:none" height="5"></div>
* 条件:
~~~
1、一个类里面
2、方法名字相同
3、参数不同
~~~
<div style="display:none" height="5"></div>
* 基本设计本原则:
➣ 仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载
* 函数重载主要是为了解决两个问题
~~~
1、可变参数类型
2、可变参数个数
~~~
<div style="display:none" height="5"></div>
**情况 1** :
函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。
**情况 2**
函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。
**鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。**
<br/>
# 方法重写(overiding method)
* 方法重写又称方法覆盖
<div style="display:none" height="5"></div>
* 条件:
~~~
1、参数列表必须完全和被重写方法的参数列表一致
2、返回类型必须完全和被重写方法的返回类型一致
3、访问修饰符的限制一定要大于被重写方法的访问修饰符
~~~
* 基本设计本原则:
➣ 子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。