# 单继承 ***** # 先抽象再继承,几个类之间的相同代码抽象出来,成为父类 # 子类自己没有的名字,就可以使用父类的方法和属性 # 如果子类自己有,一定是先用自己的 # 在类中使用self的时候,一定要看清楚self指向谁 # 多继承 *** # 新式类和经典类: # 多继承寻找名字的顺序 : 新式类广度优先,经典类深度优先 # 新式类中 有一个类名.mro方法,查看广度优先的继承顺序 # python3中 有一个super方法,根据广度优先的继承顺序查找上一个类
-----------------------------------接口类------------------------------------------------------------
# java : 面向对象编程 # 设计模式 —— 接口 # 接口类 : python原生不支持 # 抽象类 : python原生支持的 from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): # 元类 默认的元类 type #metaclass =ABCMeta 意味着下面要写一个规范类。 @abstractmethod def pay(self,money):pass # 没有实现这个方法 # 规范 :接口类或者抽象类都可以 # 接口类 支持多继承,接口类中的所有的方法都必须不能实现 —— java # 抽象类 不支持多继承,抽象类中方法可以有一些代码的实现 —— java class Wechat(Payment): def pay(self,money): print(‘已经用微信支付了%s元‘%money) class Alipay(Payment): def pay(self,money): print(‘已经用支付宝支付了%s元‘ % money) class Applepay(Payment): def pay(self,money): print(‘已经用applepay支付了%s元‘ % money) def pay(pay_obj,money): # 统一支付入口 pay_obj.pay(money) # wechat = Wechat() # ali = Alipay() app = Applepay() # wechat.pay(100) # ali.pay(200)
面向对象资料地址
https://www.cnblogs.com/Eva-J/articles/7293890.html
原文地址:https://www.cnblogs.com/xiangrikuidebuluo/p/9561294.html
时间: 2024-10-03 22:29:01