python语言的鸭子类型和强类型语言的多态
python语言的鸭子类型和强类型语言的多态 前面讲接口类的时候举过一个有关支付方式的例子,支付方式可以有几种,微信支付,支付宝支付,苹果支付等,这几个不同的支付都统一于支付,像这样几个类都统一于 某一个类或者某一个方法,或者说一个类有不同的形态的情况就属于多态;虽然几种支付方式都归一于支付类,执行的方法一样,但是每一个支付方式都有自己的特性,实现的 形态也不一样,即为多态性。 class Payment: # 必要的父类 def pay(self,money): pass class Wechatpay(Payment): # 子类继承父类 def pay(self,money): print('已经使用微信支付了%s元' % money) class Alipay(Payment): # 子类继承父类 def pay(self,money): print('已经使用支付宝支付了%s元' % money) class Aapplepay(Payment): # 子类继承父类 def pay(self,money): print('已经使用苹果支付了%s元' % money) def pay(pay_obj,money): # 受到父类的约束,这里的pay_obj只能传入继承了父类的子类 # 统一支付入口,归一化设计,不管使用哪种方式,都统一于支付方法 pay_obj.pay