抽象类 接口类 多继承

# 抽象类主要就是作为基类/父类,来约束子类中必须实现的某些方法
# 抽象类的特点:
# 必须在类定义的时候指定metaclass = ABCMeta
# 必须在要约束的方法上方加上@abstractmethod方法

from abc import ABCMeta,abstractmethod     #抽象方法
class Payment(metaclass = ABCMeta):            #关键字传参  metaclass = ABCMeta表示Payment类是一个规范类
    @abstractmethod                     #@abstractmethod表示下面一行中的pay方法是一个必须在子类中实现的方法
    def pay(self):pass                   #支付
    @abstractmethod
    def back(self):pass                  #退款功能

接口类

# python
    # 抽象类 : 抽象类中的方法可以写一些具体的py代码(规范)
    # 单继承
    # 多继承

# java
# 不支持多继承,新的概念 接口 Interface
# 和抽象类几乎一模一样的功能 :
    # 只定义一个接口名字(基类名),内部定义子类必须实现的方法
    # 接口支持多继承
    # 接口内部的所有方法都不能写具体的代码,只能用pass代替

# 抽象类  :
    # 单继承的形容,并且在单继承中可以在方法中写python代码
# 接口类  :  更接近java中的接口的概念
    # python中由于有了抽象类的多继承,不需要接口的概念了
    # 一个基类写出来被子类多继承了 : 接口类
    # 并且在方法中只写pass(你可以选择性的满足)

多继承

python默认继承object类

# 钻石继承问题/多继承的优先级问题
# 在python3中 所有的类都是新式类,所有的新式类的继承顺序都遵循C3算法,也叫广度优先算法
# 可以使用类名.__mro__()这个方法来查看这个继承顺序

 C3算法 - 钻石模型
# 每一个类的继承顺醋都是从基类向子类看

                                                                   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值