Python中的接口类和抽象类

Python中的接口和协议

Python语言中没有interface关键词,而且除了抽象基类,每个类都有接口:类实现或继承的公开属性(方法或数据属性)。

接口类:

面向对象中的继承有两种用途:
1)可以通过继承做到代码重用,并完成扩展;
2)接口继承
所谓的接口继承就是定义一个接口类Interface,接口类中定义了一些接口(就是函数,但这些函数都是没有具体的实现),子类继承接口类,并且实现接口中的功能。
接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由类B去实现其中的某个功能或全部功能。在python中接口由抽象类和抽象方法去实现,接口是不能被实例化的,只能被别的类继承去实现相应的功能。

抽象类

抽象类只能被继承,不能被实例化。如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。 比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉,要么是吃一个具体的桃子。。。。。。你永远无法吃到一个叫做水果的东西。
python中,抽象类和接口类没有明确的界限,若是类中所有的方法都没有实现,则认为是一个接口,若是部分方法实现,则认为是一个抽象类,抽象类和接口类都仅用于被继承,不能被实例化。Python原生只支持抽象列不支持接口类,abc模块就是用来实现抽象类的,当一个抽象中的所有方法都没有实现时,就认为是一个接口类。

参考文献:流畅的python, Luciano Ramalho编著

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值