封装:
封装就是把类中的属性和方法定义为私有的,方法就是在属性名或方法名前加双下划线。
在类的内部调用还是用双下划线加属性名或方法名,父类的私有属性和方法,子类无法对其进行修改。
继承:
面向对象中的继承就是继承的类直接拥有所被继承的属性,而不需要自己在类中重新定义写一遍。
其中被继承的类叫做父类(基类),继承的类叫做子类(派生类)。
在其他的语言中只支持单继承 ,而Python支持多继承。
-->多继承可以继承多个父类,也继承了所有父类的属性和方法。
-->注意:如果多个父类中有同名的 属性和方法,则默认使用第一个父类的属性和方法(根据类的魔法属性__mro__的顺序来查找)。
-->多个父类中,不重名的属性和方法,不会有影响。
多态:
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态。
多态在继承中可体现出来 调用父类不方法不一定就是父类,有可能是子类重写父类的方法,所以说定义时的类型和运行时的类型不一样。
Python的多态,就是弱化类型,重点在于对象参数是否有指定的属性和方法,如果有就认定合适,而不关心对象的类型是否正确。