# 面向对象的三大特性之继承# 当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好 (如机器人)
# 当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好 (动物——猫)
# 继承同时有两种含义:1,继承基类的方法,并且做出自己的改变或扩展(代码重用),这种意义并不大,因为它使子类和基类出现强耦合
#           2,声明某个子类兼容于某基类。定义一个接口类,子类继承接口类,并实现接口中定义的方法
#              接口继承只是接口类规定了子类必须实现的方法,但是接口类里不去实现,子类继承后,在子类中再写具体实现的方法
#              可以导入abc模块,并使用装饰器@abc.abstractmethod,限定子类必须要定义接口类中的方法import abc  # 导入abc模块class AllFile(metaclass=abc.ABCMeta):  # 定义接口类@abc.abstractmethod  # 使用装饰器,限定子类中必须要定义下面的方法def read(self):  # 仅有方法名称,并没有具体内容,仅是为了规范子类pass@abc.abstractmethoddef write(self):passclass Disk(AllFile):  # 子类Disk继承AllFile接口类def read(self):  # 必须定义接口提供的两个方法,否则实例化时会报错print('Disk read')  # 方法的具体实现代码def write(self):print('Disk write')class Cdrom(AllFile):def read(self):print('Disk read')def write(self):print('Disk write')d = Disk()# 新式类的继承顺序(广度优先)
print(Disk.__mro__)  # 显示新式类的继承顺序方法1
print(Disk.mro())  # 显示新式类的继承顺序方法2# 子类中调用父类的方法
class Vehicle:country = 'China'def __init__(self, name, speed, load, power):self.name = nameself.speed = speedself.load = loadself.power = powerdef run(self):print('父类方法')class Subway(Vehicle):def __init__(self, name, speed, load, power, line):super().__init__(name, speed, load, power)  # 通过super()调用父类的方法self.line = line  # 子类def show_info(self):print(self.name, self.speed, self.load, self.power, self.line)def run(self):super().run()print('子类方法')line13 = Subway('北京地铁', '10km/s', 10000, '电', 13)
line13.show_info()
line13.run()

转载于:https://www.cnblogs.com/dangrui0725/p/9457877.html

面向对象的三大特性之继承相关推荐

  1. Python - 面向对象编程 - 三大特性之继承

    继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...

  2. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  3. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  4. C++ 面向对象程序三大特性之 继承

    目录 继承的概念 继承的定义及使用 继承方式和访问权限 基类和派生类对象的赋值转换 继承中的各成员的作用域 派生类的默认成员函数 构造函数 拷贝构造 赋值运算符重载函数 析构函数 继承与友元 继承与静 ...

  5. Python全栈开发——面向对象的三大特性(继承 多态 封装)

    1.继承 1.两层意思 改变和扩展(详细看随笔继承和组合) 2.多态(体现在运行时的状态) 1.不同的类可以调用相同的方法,得到不同的结果 2.实际上是继承的一种体现机制 class H2o:def ...

  6. 一文带你了解java面向对象的三大特性:继承、封装、多态

    文章目录 1.继承 2.封装 3.多态 本篇文章以同步到:https://www.bithachi.cn/posts/c72fe2cc.html 1.继承 继承是类与类的一种关系,子类拥有父类的所有( ...

  7. Python面向对象编程三大特性之继承

    继承 继承 继承的语法 重写 扩展 引用 super().父类方法名 参数传递 code:_6Inheritance.py # ************************************ ...

  8. 面向对象之三大特性:继承,封装,多态

    python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分 ...

  9. 面向对象之:三大特性:继承(已讲),封装,多态

    目录 1.封装 2.多态 3.类的约束 4. super()深入了解 前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个 ...

最新文章

  1. Android:四种启动模式分析
  2. mybatis trim标签_MyBatis学习笔记
  3. 基于 HTML5 WebGL 的 3D 棉花加工监控系统
  4. echarts柱状图 与轴不重叠_用Echarts做堆积的柱状图,当横轴为“time”类型时,都是从0开始显示,而不是叠加,为什么会这样?...
  5. Redis数据库(一)——Redis简介、部署及常用命令
  6. oracle 设置输出显示中文乱码,修改oracle当前会话的语言环境,解决oracle显示中文乱码的问题 | 信春哥,系统稳,闭眼上线不回滚!...
  7. MySQL笔记-解决InnoDB: Could not find a valid tablespace file for 'mysql/innodb_index_stats'
  8. 在anaconda环境下搭建python3.5 + jupyter sparkR,scala,pyspark
  9. 线性回归、二次回归、随机采样一致性ransac的数据拟合
  10. 使用re正则匹配网络请求到的正文内容,筛选出jpg图片链接
  11. FreeRTOS 教程指南 学习笔记 第四章 队列管理
  12. Tabular Editor学习笔记_2
  13. 38.伪造源站抑制的ICMP数据包
  14. 高等数学和数学分析教材推荐及其学习方法浅谈
  15. C4D-学习笔记-3-建模+渲染
  16. leetcodeOj:66. Plus One
  17. 尺寸工程分析软件-尺寸公差分析软件-尺寸链计算软件
  18. python图像处理:核磁共振图像(3D)的缩放
  19. 2016在电影院看过的电影
  20. DLX精确覆盖 hdu4069 Squiggly Sudoku

热门文章

  1. 三.Hystrix资源隔离
  2. 做图与树做到吐的一天
  3. UVALive 7040 Color
  4. 8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句
  5. 结对编程——四则运算过程
  6. [凯立德]2014春季版3121J0H+3121D0H
  7. 【字符串操作之】大小写转换→→toLocaleLowerCase、toLocaleUpperCase
  8. asp.net 获取 当前日期时间 及 前后N天日期时间(DropDownList数据绑定)
  9. 【090723】动态调用webservice
  10. samli文件_5.3 smali文件格式