源码先锋

源码先锋

第79p,什么是多态,多态有什么特点?

admin 90 118

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第79篇文章,第三阶段的课程:Python进阶知识:类与对象(十);面向对象编程3大特性之多态。

一、什么是多态?

多态指的是同一种事物有多种形态;比如:水和冰都是水,人既是人也是动物;

多态带来的特性是可以在不考虑对象具体类型的情况下使用对象;比如:只要是人就一定会说话、吃饭、呼吸,而不用考虑他是老人还是小孩子;

多态性带来的好处在于减少使用者的学习成本;比如:我们考驾驶的时候只需要考汽车驾照就可以了,而不用分别去考宝马汽车、日产汽车、奔驰汽车的驾照;因为不管什么品牌的汽车,它都是汽车;我们在驾驶汽车的时候,只要确定它是汽车就可以了,不需要考虑它是什么品牌的汽车。

二、多态与鸭子类型

假如有个物体具有鸭子的特征,比如:有羽毛、会嘎嘎叫、走路摇摇晃晃,看起来像只鸭子;虽然它并不是鸭子,我们在代码层面可以把这个物品当作鸭子;

即使在设计程序的过程中,有多个实现目的不相关的功能,它们之间有相同的的特性,我们就把它们归为了类,这就是多态与鸭子类型的思想。

在面向对象编程的3大特性中,封装、继承、多态更重要的是一种思维上的认知改变,这种认知上的改变会影响我们对设计代码框架结构的改变;所以,要读懂大神的代码,最重要的不是读懂代码本身,而是了解整个代码结构的思考方式。

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。