28.面向对象的三大特征之多态和封装

多态:

python天生支持多态。

多态的广义理解:一个事物,文件有多种形态。

函数参数传入以及定义时不需要刻意的强调传入参数的数据类型,不同类中的同名方法,在执行时,在子类中执行可以有不同的结果

鸭子类型:

python崇尚鸭子类型:不崇尚根据继承所带来的相似。

鸭子类型:如果需要实现的功能与已经写好的代码功能相同。不赞成通过继承来获得相同的功能。我只要实现我自己的功能代码就好了,并不产生父类的子类的兄弟关系。

举例:tuple和list两个数据都很多相似的功能,切片功能和索引功能,这种相似,是自己类中的代码约束的,而不是通过父类约束的。

优点:松耦合,每个相似的类之间都没有影响
缺点:太随意了,只能靠自觉

封装:

广义上面向对象的封装:

保护代码,面向对象的思想本身就是一种封装,只让自己的对象能调用自己类中的方法。

侠义上面向对象的封装:

面向对象的三大特性之一,把属性和方法都藏起来,不让别人去用。

 

posted @ 2020-10-24 20:14  maday  阅读(59)  评论(0)    收藏  举报