这两个概念来自于Java,因为Java中没有多继承,是通过接口实现的多继承,所以在java中他们是两个东西;
而在Python中,因为有多继承的存在,所以是同一种东西.
from abc import ABCMeta, abstractmethod class Payment(metaclass=ABCMeta): # 抽象类(接口类): @abstractmethod def pay(self): pass # 制定了一个规范 @abstractmethod def func(self): pass class Alipay(Payment): def __init__(self, money): self.money = money def pay(self): print('使用支付宝支付了%s' % self.money) class Jdpay(Payment): def __init__(self, money): self.money = money def pay(self): print('使用京东支付了%s' % self.money) class Wechatpay(Payment): def __init__(self, money): self.money = money def pay(self): print('使用微信支付了%s' % self.money)
抽象类的子类通过不同的方式实现了同一个功能,有相同的方法名.