python基础语法 010 类和对象-6-1 继承定义

news2024/11/18 13:23:11

前提:

        在真实世界中,类型之间可能存在范围包含关系,比如:人这个类型和亚洲人这个类型。

        人是包括了亚洲人的,如果某人是员工亚洲人,那么它必定是一个人

        这种关系,在编程语言中称为继承关系

        比如上面例子:亚洲人这个类就继承了人这个类

        通常把被继承的类称为父类或者基类

        把继承类称为子类 或者 派生类

例子:Benz2016、Benz2018继承BenzCar类

class BenzCar:
    brand = '奔驰'
    country = '德国'

    @staticmethod
    def pressHorn():
        print("嘟嘟~~")
    def __init__(self, color, engineSN):
        self.color = color
        self.engineSN = engineSN
    
    def changeColor(self, newColor):
        self.color = newColor

class Benz2016(BenzCar):
    price = 502222
    model = 'Benz2016'
    
class Benz2018(BenzCar):
    price = 902222
    model = 'Benz2018'

2 继承

2.1 私有属性

私有属性

  • 双下滑线开头:__attr
  • 声明为私有属性,那么该说明属性是类私有的,仅限于在类里面使用,不要在类外面去调用

2.2 类的继承关系:

通过使用父类的方法,使其不重复去定义各种方法

问:通过继承能够获得什么?

  • 子类通过继承可以自动获得父类的一切属性和方法
  • 被继承的类叫父类,继承的类叫子类
  • 注意:私有属性不能继承
  • 作用:子类通过继承可以获得父类的属性和方法,提高开发的效率及代码的复用性
  • 继承是单边关系
  • 一般继承不超过2层

2.2.1 继承的定义

语法

继承
父类、子类
继承:如何表示?
class 子类名(父类名):
    pass
 1)一个子类在继承父类的一切特性的基础上,可以有自己的属性和方法

 例子1:smartPhone继承了Phone

lass Phone:
    def __init__(self, number):
        self.number =number

    def  call(self, to, records = False):
        "打电话"
        print("{}给{}打电话".format(self.number, to))
        if records:
            self.record()

    def record(self):
        '录音'
        print("{}正在录音".format(self.number))

class smartPhone(Phone):
    '智能手机'
    model = '智能手机'

normal_phone = Phone('1')
print(normal_phone.record())

smart_phon = smartPhone('123')
print(smart_phon.record())
print(smart_phon.number)

"""
1正在录音
None
123正在录音
None
123
"""
2) 父类当中不能调用子类方法

#父类当中不能调用子类方法
class smartPhone(Phone):
    '智能手机'
    def watch_movie(self, name):
        print("{}正在看电影".format(name))

normal_phone = Phone('1')
print(normal_phone.record())
print(normal_phone.watch_movie())


"""
AttributeError: 'Phone' object has no attribute 'watch_movie'
"""

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Web|day5.MyBatis

MyBatis 定义 它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低 **ORM: **Object Relation Mapping,…

数据库调优的流程及参考参数

1.数据库调优的流程: 1.1.调优思考流程: 1.对数据库进行调优的时候,我们可以依据以下步骤进行思考: 整个流程划分成了观察 (Show status) 和行动 (Action) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具&am…

全自由度控制八极电磁铁-吴贤铭智能工程学院案例

根据客户需求,上海天端实业有限公司设计八极电磁铁方案 八极电磁铁产品说明 八极电磁铁可在空间内部产生方向及强度可控的均匀磁场或梯度磁场,八组磁极以空间极轴布置,每组磁极可独立控制,磁场空间300mm直径球域。 八极电磁铁电…

electron 官网速通

前言:参考Electron 中文网。 核心知识点:有哪些进程,进程之间的通信,electron API 分类及怎么调用。 一、快速开始 1. 新建一个 my-electron 的文件夹。 2. 运行 npm init 创建 package.json 文件。 3. 填写 author 和 descr…

【Python-办公自动化】1秒提取多个word表格汇总至1个excel内

欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。 自我介绍: 我热衷于将复杂的技术概念以简单易懂…

苹果上架没有iphone、没有ipad也可以生成截屏

使用flutter、uniapp或其他跨平台框架开发ios的APP,上架的时候都会遇到一个问题,上架的时候需要各种尺寸的设备来做ios截屏。 比如目前最新的要求是,iphone需要三种不同尺寸的设备的截屏,假如支持ipad则还需要使用ipad 2代和ipad…

linux常用命令学习-ls命令

1.1 ls 命令 命令功能:查看文件信息。 在 ubuntu 上,一般都使用 ls 命令来查看文件信息,ls ,是 list 这个单词的缩写。在当前目录下输入 ls 命令,这样就会列出当前路径下的全部文件,例如我们要查看桌面上的文件&#x…

什么是硬件在环仿真?

硬件在环Hardware-in-the-loop(HIL)仿真是一种实时仿真。您可以使用HIL模拟来测试您的控制器设计。HIL模拟显示了控制器如何实时响应逼真的虚拟刺激。您还可以使用HIL来确定您的物理系统(设备)模型是否有效。 在HIL模拟中&#xf…

代码随想录训练营 Day34打卡 动态规划 part02 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树

代码随想录训练营 Day34打卡 动态规划 part02 一、力扣62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Fini…

5.vue中axios封装工程化

vue工程化中axios封装 视频演示地址:https://www.bilibili.com/video/BV121egeQEHg/?vd_source0f4eae2845bd3b24b877e4586ffda69a 通常我们封装需要封装request.js基础的发送请求工具类,再根据业务封装service类,service类是具体业务的接口…

Ps:首选项 - 暂存盘

Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K Photoshop 首选项中的“暂存盘” Scratch Disks选项卡通过合理配置和管理暂存盘,可以显著提高 Photoshop 的运行性能,特别是在处理复杂的设计项目或大型图像文件时。选择合适…

Conformer解析

文章目录 前言Conformer encoder model architectureConvolution SubsamplingLinear & DropoutConformer BlocksFeed Forward ModuleMulti-Headed Self-Attention ModuleConvolution Module 前言 Conformer encoder model architecture 对于语音来说,整个架构…

内核链表的实现

内核链表和普通链表的区别: 1. 普通链表当中数据域和指针域,没有做到区分,数据与指针形成了一个整体,而内核链表数据与指针是完全剥离的没有直接的关系。 2. 在普通链表当中所有节点的数据都是一样的类型,而内核链表…

vmware安装openEuler操作系统

文章目录 vmware安装openEuler操作系统官网地址下载方式 新建虚拟机新建虚拟机新建虚拟机向导输入新建的虚拟机名称预览安装虚拟机的操作系统开始安装语言选项基础配置 网络配置关机拍快照克隆模板机 vmware安装openEuler操作系统 官网地址 https://www.openeuler.org/zh/dow…

6.4 MySQL 常见查询优化案例分析

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

Python 函数参数介绍

目录 函数 -- 普通参数 函数 -- 参数进一步 -- 指定参数 函数 -- 参数带 * -- 将传入的参数打包成元组 函数 -- 参数带 ** -- 关键字传参 -- 将传入的参数打包成字典 综合使用 函数 -- 普通参数 函数 -- 参数进一步 -- 指定参数 函数调用时,未指定的参数需要写…

风清扬/基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目

基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 安装教程 参与贡献 Fork 本仓库新…

十分钟搭建一个RTMP服务器

使用SRS搭建RTMP服务器 如果您需要搭建一个RTMP服务器,您可以使用SRS(Simple-RTMP-Server)来完成此任务。SRS是一个开源的RTMP服务器下面是一个简单的步骤指南: 获取srs srs官⽹:https://github.com/ossrs/srs 码云…

软考2024下半年软考报名时间安排及报名流程

简介 软件资格考试也称计算机软件水平考试 [1],是原中国计算机软件专业技术资格和水平考试的完善与发展。是对从事或准备从事计算机应用技术、网络、信息系统和信息服务等专业技术工作的人员水平和能力的测试。这项考试是由国家人力资源和社会保障部、工业和信息化…

【通信协议】I2C总线(一主多从)

目录 I2C简介 硬件电路 软件模拟初始化 基本单元 起始信号 停止信号 发送一个字节 接收一个字节 发送应答 接收应答 I2C基本单元代码 MyI2C.h MyI2C.c 完整数据帧 学习资料分享 本博客使用软件模拟的代码进行I2C总线​​​​​​(总线指多个设备共用…