day24 多态--后续
三 多态
同一个对象,多种形态。不同的类名中可以定义相同函数名的函数。在归一化的函数中,将类名作为参数传递,这样在函数中就可以根据不同的类名调用不同类中的相同名字的函数。
eg:做一个支付功能的函数,包括微信支付和支付宝
class WeixinPay:
def pay(self,money):
print("使用微信支付%s元" %money)
class ZhifubaoPay:
def pay(self,money):
print("使用支付宝支付%s元" %money)
a=WeixinPay()
a.pay(100)
b=ZhifubaoPay()
b.pay()
//这样设计需要改进,因为一个支付功能需要用不同的类,不同的函数来实现,需要做归一化设计改进
eg:
class WeixinPay:
def pay(self,money):
print("使用微信支付%s元" %money)
class ZhifubaoPay:
def pay(self,money):
print("使用支付宝支付%s元" %money)
def pay(obj,money):
obj.pay(money)
a=WeixinPay()
b=ZhifubaoPay()
pay(a,100)
pay(b,200)