一、接口类(面向对象开发的思想和规范)的多继承

需求:

定义一个tiger类:会走,会游

定义一个hawk类:会走,会飞

定义一个swan类:会走,会游,会飞

(a)如果像以下代码的方式,则不能够满足以上的需求,只有swan的实例化才是正确的,其他两个tiger类和hawk类则不能满足

(b)而以下代码确切定义每一个类,每个类的属性都都在类里面存在,这样写虽然可以满足前面的需求,但是不好的地方就是,重复的方法太多,显得累赘

©以下代码使用了接口类的多继承,虽然代码看起来还是和(b)一样有点多,但是它起到了一个规范的作用,不容易出错,出错了了也更容易找到出错的地方,一出现错误,就说明,子类中不存在与父类中同名的方法和函数,然后做出对应的修改即可

从(a)和©接口类的多继承的代码也可以比较容易理解在使用接口类常用的一个原则:

接口隔离原则:使用多个专门的接口(,多个规范,多个父类),而不使用单一的总接口(单一的父类),即客户端不应该依赖那些不需要的接口

二、抽象类的单继承

如果说类是从一堆对象中抽取相同的内容而来,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性,以下用一个例子来说明什么是抽象类

对于操作系统来说,一切皆是文件,利用abc模块可以实现抽象类

三、接口类和抽象类的小结

无论是接口类还是抽象类都是面向对象的开发规范,都不能实例化

(1)Java:Java里面所有的类都是单继承,所以抽象类完美的解决了单继承需求中的规范问题;但是对于多继承的需求,Java本身语法不支持,所以创建了接口interface这个概念来解决多继承问题

(2)python:由于python也想用这种类似的设计模式,所以模仿Java中接口类和抽象类的概念,只不过概念比较模糊。python中没有接口类,但是它本身支持的多继承并用class可以实现和接口类一样的功能效果;而python中支持抽象类,即单继承的方法就可以实现抽象类的功能作用

接口可以继承抽象类吗_Python接口类的多继承以及抽象类的单继承相关推荐

  1. python 接口自动化测试框架有哪些_Python接口自动化测试框架

    Python接口自动化测试框架 在自动化的测试体系中,包含了UI自动化测试和接口自动化测试,UI自动化实现的前提是软件版本进入稳定期,UI界面稳定.变动少,相比较之下接口自动化,接口受外界因素的影响较 ...

  2. python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理

    前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测 ...

  3. python接口自动化测试框架链接数据库_python接口自动化测试框架实现之操作mysq数据库...

    python操作mysql数据库需要使用到mysqlclient库. 安装:pip install mysqlclient python连接mysql数据库分以下步骤: 1.与mysql建立连接: 2 ...

  4. 面试轻松讲清楚 Java 面向对象的问题与知识(类与对象,封装,继承,多态,接口,内部类...)

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  5. 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)

    二 Java面向对象 类和对象 1.1 什么是面向过程?什么又是面向对象? 面向过程--步骤化 面向过程就是分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用即可 面向对象 ...

  6. python单继承和多继承_Python 类继承(单继承和多继承)

    在面向对象的编程中,类的继承是非常重要的一个特性,Python同样支持类的继承.和Java等语言的单继承不同,Python支持类的单继承和有限的多继承. 一.Python类单继承 在Python中,类 ...

  7. Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性

    一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...

  8. java 组合优与继承_Java中为什么老鸟要告诉你优先使用组合而不是继承?

    新的一周,新的干货分享 大家知道,面向对象有三个特征:继承.封装和多态.现在,我们谈谈关于继承的一些问题.了解一下继承的优点.缺点,以及继承缺点的解决方案. 继承的起源,来自于多个类中相同特征和行为的 ...

  9. python中的单继承,多继承和mro顺序

    python作为一门动态语言,是和c++一样支持面向对象编程的.相对对象编程有三大特性,分别是继承,封装和多态.今天我们重点讲解的是,python语言中的单继承和多继承. 继承概念: 如果一个类继承了 ...

最新文章

  1. 数学——函数极限知识以及sympy库的limit
  2. Python 爬虫练手项目—酒店信息爬取
  3. 非线性优化:徒手实现LM算法
  4. 装有linux的硬盘装到不同主机,把ubuntu系统安装进移动硬盘,可在不同电脑上运行...
  5. textisselectable长按再点击_微信朋友圈如何发布长视频?原来打开这个功能就可以,涨知识了...
  6. 参数整定临界比例度实验_实验低温浴“秘方”,调节两个溶剂的比例实现零下10度到78度定温配制...
  7. E - 嗯? 51Nod - 1432(二分)
  8. reactor设计模式 1
  9. mysql update column_MySQL8.0 新特性:Partial Update of LOB Column
  10. R7-3 计算个人所得税 (10 分)
  11. 华为三星和解;联想全球首发折叠电脑;苹果回应美高院裁决 | 极客头条
  12. ORA-00119: invalid specification for system parameter LOCAL_LISTENER;
  13. mysql基础2-数据库的相关操作
  14. oracle 客户端配置
  15. Linux - Kafka集群搭建
  16. 3d打印零件精度的影响
  17. 【HEVC】CTU,CU,PU,TU的划分
  18. android怎样开启root权限管理,【经验】安卓手机怎么开启Root权限?
  19. 双拼输入法中,例如“哦”“欧”“饿”“而”等,只有韵母的字怎样打?
  20. linux2T硬盘分区命令,linux系统使用parted命令对大于2T的硬盘进行分区教程

热门文章

  1. NC代码调试 - 持续更新
  2. springboot 使用 minio
  3. mysql oa数据库设计_OA项目1:环境搭建之数据库创建与环境添加
  4. mysql主键unsigned_mysql – 主键应该总是unsigned?
  5. String(min)
  6. 歌星大奖赛C语言程序,C_歌星大奖赛
  7. java中的生产者消费者模式详解
  8. oracle数据库安装提示M,Python第13课:oracle数据库的安装
  9. c和java内存泄漏区别_内存溢出和内存泄漏的区别(转)
  10. creator 静态属性_CocosCreator cc.class声明类