封装与多态

封装

封装是面向对象的一大特点,就是将属性和方法封装到一个抽象的类中。外界使用类来创建对象,然后让对象调用里面的方法。将对象的方法的细节都封装在类的内部。

多态

多态是不同的子类对象调用相同的父类方法,产生不同的执行结果

多态的前提就是继承和重新父类的方法。多态的好处就是增加代码的灵活度,但是不去影响类的内部设计。

类的约束

当子类继承父类时,必须使用定义在父类中的方法,如果不用父类的方法,就给程序抛出一个异常

class Payment:
    def pay(self,money):
        raise Exception('你没有用定义好的支付方法')

class QQpay(Payment):
    def pay(self,money):
        print('你用QQ支付了%s元'%(money))

def pay(a,b):
    a.pay(b)

a=QQpay()
pay(a,100)

可以看出子类qq支付继承父类支付的时候,将父类定义好的pay方法,重新定义了,通过这种方式,父类继承下来就不会存在异常。我们可以通过添加一个微信支付来观察区别。

class Payment:
    def pay(self,money):
        raise Exception('你没有用定义好的支付方法')

class QQpay(Payment):
    def pay(self,money):
        print('你用QQ支付了%s元'%(money))
class wxpay(Payment):
    def fuqian(self,money):
        print('你用wx支付了%s元' % (money))
def pay(a,b):
    a.pay(b)

a=QQpay()
c=wxpay()
pay(a,100)
pay(c,100)
raise Exception('你没有用定义好的支付方法')
Exception: 你没有用定义好的支付方法

可以看出,通过pay函数,调用到了父类里的方法,最后执行的就是抛出异常。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值