15分钟学Python 第22天 :继承与多态

Day 22:继承与多态

一、继承

1. 什么是继承?

继承是一种从已有类(父类或基类)创建新类(子类或派生类)的机制。子类可以获得父类的所有属性和方法,并且还可以增加新的属性和方法,或者重写父类的方法。

2. 继承的类型
  • 单继承:一个子类只有一个父类。
  • 多重继承:一个子类可以有多个父类。
  • 层次继承:多个子类继承同一个父类。
3. 继承的语法
class Parent:def __init__(self, name):self.name = namedef greet(self):return f"Hello, my name is {self.name}."class Child(Parent):def greet(self):return f"Hi, I'm {self.name}!"

二、示例代码

# 父类
class Animal:def __init__(self, name):self.name = namedef speak(self):return "Generic animal sound."# 子类
class Dog(Animal):def speak(self):return "Woof!"class Cat(Animal):def speak(self):return "Meow!"# 创建对象
dog = Dog("Buddy")
cat = Cat("Mittens")# 方法调用
print(dog.speak())  # 输出: Woof!
print(cat.speak())  # 输出: Meow!

三、代码运行流程图

下面是上面代码的运行流程图:

+-----------------+
|   Animal Class  |
+-----------------+|v
+-----------------+
|     Dog Class   | <----+
+-----------------+       |
|  speak()        |       |
+-----------------+       ||                   |v                   |"Woof!"              ||
+-----------------------+
|     Cat Class         |
+-----------------------+
|  speak()              |
+-----------------------+|v"Meow!"

四、如何使用继承

1. 共享代码

通过继承,可以在子类中重用父类的方法和属性,这样可以减少代码的重复。

2. 扩展功能

子类可以添加新的方法和属性,扩展父类的功能。

3. 方法重写

子类可以重写父类的方法,以实现特定的功能。

五、实例:动物类

构建一个动物管理系统,展示继承的强大之处。

class Animal:def __init__(self, name, age):self.name = nameself.age = agedef make_sound(self):raise NotImplementedError("Subclass must implement abstract method.")class Dog(Animal):def make_sound(self):return "Woof!"class Cat(Animal):def make_sound(self):return "Meow!"animals = [Dog("Buddy", 3), Cat("Whiskers", 2)]for animal in animals:print(f"{animal.name} says: {animal.make_sound()}")

六、提纲摘要

主题描述示例
继承概念从父类创建子类class Child(Parent): ...
单继承一个父类对应一个子类class B(A): ...
多重继承一个子类对应多个父类class C(A, B): ...
方法重写子类重新定义父类的方法def method(self): ...
代码复用子类可以使用父类的方法和属性super().__init__()

七、多态

1. 什么是多态?

多态是指不同类的对象可以通过相同的接口进行访问。这意味着你可以用同样的方式调用不同类中的方法,而不需要了解具体的实现细节。

2. 多态的例子

通过上面的动物类示例,我们可以使用相同的方法访问所有动物,不论它们的具体类型。

for animal in animals:print(animal.make_sound())

这段代码将会输出每个动物的声音,尽管我们不知道每个动物对象的具体类型。

八、如何实现多态

  1. 定义相同名称的方法:确保不同类中有同名的方法。
  2. 使用基类的引用:通过基类的引用操作子类对象。

九、实例:多态实现

class Bird(Animal):def make_sound(self):return "Chirp!"animals = [Dog("Buddy", 3), Cat("Whiskers", 2), Bird("Tweety", 1)]for animal in animals:print(f"{animal.name} says: {animal.make_sound()}")

十、总结

1. 继承的优势
  • 代码复用
  • 可维护性高
  • 逻辑清晰,层次分明
2. 多态的优点
  • 灵活性
  • 可扩展性
  • 改善代码可读性

练习题

  1. 创建一个新的动物类(如兔子),并确保它能正确实现多态。
  2. 定义一个基类 Shape,包含一个方法 area(),再定义几个派生类(如 CircleRectangle),实现该方法。

项目作业

设计一个简单的图形绘制程序,使用继承和多态实现不同图形的绘制。要求设定一个基类 Shape,并根据形状类型(如圆形、矩形、三角形等)实现该方法。

参考资料

  • Python官方文档
  • 《Python编程:从入门到实践》
  • 在线Python教程

通过上述内容,希望您对继承和多态有了更深入的理解。请随时向我提问,或告知我您的下一个学习主题!


怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

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

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

相关文章

【干货来了】PLC多种通讯方式汇总学习~

PLC的通讯功能是其连接设备、控制系统和外部系统的重要组成部分。PLC支持多种通讯方式&#xff0c;本文将讲述PLC常见的通讯方式及其优缺点&#xff0c;别再傻傻分不清楚~ 一.点对点通讯&#xff08;P2P&#xff09; 点对点通讯是一种简单的通讯方式&#xff0c;它直接将两个…

短视频矩阵系统源码技术分享,oem贴牌分享

在当今数字化时代&#xff0c;短视频平台的火爆程度不言而喻。而短视频矩阵源码技术则为开发者和企业提供了强大的工具&#xff0c;帮助他们快速搭建自己的短视频平台&#xff0c;实现个性化的功能和服务。本文将深入探讨短视频矩阵源码技术&#xff0c;分享其核心功能和实现方…

VMware虚拟网络的连接模式探究与实践

VMware安装完成虚拟机后&#xff0c;大多要进行网络配置&#xff0c;实现网络的互联互联&#xff0c;初学者往往感觉与一台实体主机的网络配置不同&#xff0c;局域网中一台实体主机一个物理网卡&#xff0c;配置一个IP地址&#xff1b;或直接通过WAN上网&#xff0c;比较直观&…

日常生活中喝够水,能帮助预防多种慢性病、提高免疫力,还能改善情绪、提高认知能力!

文章目录 引言多喝水的好处为何人体中水分含量这么高?引言 感到口渴时,人体缺水程度已经在 1%~2% 了。建议大家养成随时喝、少量多次的习惯,在口渴前喝水,避免影响健康。 水分的丢失却无时无刻不在发生,即便没有大量出汗,每天通过呼吸、排泄、皮肤蒸发就能排出 1.5~2 升…

C语言课程设计题目一:职工信息管理系统设计

文章目录 题目一&#xff1a;职工信息管理系统设计代码块employeeManagement.hemployeeManage.ctest.c 调试验证录入信息&#xff0c;并浏览验证职工号唯一保存职工信息&#xff0c;加载职工信息按职工号进行查询根据id删除职工修改职工信息 题目一&#xff1a;职工信息管理系统…

安全鞋防护功能大揭秘,轻松选购就看这一篇!

在日常生活和工作中&#xff0c;安全始终是我们不可忽视的重要一环。尤其对于需要频繁接触危险环境的劳动者而言&#xff0c;一双合格的安全鞋&#xff0c;不仅是工作的必需品&#xff0c;更是守护双脚安全的坚实盾牌。然而&#xff0c;面对市场上琳琅满目的安全鞋&#xff0c;…

服务器安装SG15扩展全版本(宝塔+任意服务器通用)完整教程

服务器安装SG15扩展全版本&#xff08;宝塔任意服务器通用&#xff09;完整教程 前言教程包括宝塔演示结尾文章声明 前言 这篇文章介绍了在服务器上安装 SG15 扩展全版本的步骤&#xff0c;以宝塔为平台&#xff0c;适用于任意服务器。作者为了保护免费插件不被盗卖&#xff0…

【网络安全】公钥密码体制

1. 公钥密码体制概述 1.1 基本概念 公钥密码体制&#xff0c;又称为非对称密码体制&#xff0c;是一种基于数学函数的加密方式&#xff0c;它使用一对公钥和私钥来进行加密和解密。公钥用于加密&#xff0c;私钥用于解密。这种体制提供了一种安全的通信方式&#xff0c;因此在…

Python GUI 编程:tkinter 初学者入门指南——标签

在本文中&#xff0c;您将了解 Tkinter Label 小部件以及如何使用它在屏幕上显示文本或图像。 Tkinter Label 即标签&#xff0c;用于在屏幕上显示文本或图像。 常规语法&#xff1a; label tk.Label(master, **options) 下面显示了一个基本的窗口程序框架&#xff0c;我们…

NVM 使用过程问题记录

1、nvm install 安装node报错 Node.js v14.9.0 is not yet released or is not available. 网络错误 nvm ls available查看可安装node列表&#xff0c;如果显示为空 执行 nvm node_mirror https://npmmirror.com/mirrors/node/ nvm npm_mirror https://npmmirror.com/mirr…

百度在线翻译神器?这3款工具让你秒变语言达人!

在数字化的今天&#xff0c;我们早已离不开在线翻译工具了&#xff01;从日常的简单翻译到专业级的文献翻译&#xff0c;这些翻译工具就像是我们的“翻译官”&#xff0c;为我们的生活带来了便利&#xff1b;在这里&#xff0c;我给大家分享一下我的百度在线翻译使用感受&#…

计算曲线4s1-2的斜率

在行列可自由变换的条件下&#xff0c;平面上的4点结构只有16个 3点结构只有6个 2点结构只有3个 这次将4点结构化成3点结构&#xff0c;再化成2点结构4s1-3-2&#xff0c;并比较4s1-3-2的变化规律。 (A,B)---6*n*2---(0,1)(1,0) 分类A和B&#xff0c;A是16个4点结构&#xff…

沙漠光伏可视化:高效监控与优化管理

利用图扑可视化技术实时监测沙漠光伏系统的运行状态&#xff0c;提升数据透明度与故障响应速度&#xff0c;实现能源资源的最优利用和管理。

MATLAB案例 | 沪深股市收益率的二元Copula模型

沪深股市收益率的二元Copula模型 1. 案例描述2.实现流程2.1 确定随机变量的边缘分布2.1.1 参数法计算流程2.1.2 非参数法 2.2 选取适当的Copula函数2.3 参数估计 3. 完整代码参考资料 1. 案例描述 现有上海和深圳股市同时期日开盘价、最高价、最低价、收盘价、收益率等数据,跨…

[笔记]某川电机变频器指标与参数

变频器是进行电机控制的一个参考源&#xff0c;所有这些电机厂商的产品中提及的功能模块&#xff0c;项点&#xff0c;都需要关注。 某些功能点&#xff0c;自定义的分类&#xff0c;都是一些可以用作参考和进一步扩展的一些基本的技术点。软硬件接口&#xff0c;可以在设计自…

经验——CLion通过SSH远程开发__imx6ull的linux开发

CLion&#xff1a;2024.2.2 引言 初学嵌入式linux开发看的是正点原子的imx6ull教学视频&#xff0c;使用的是VS Code。虽然VS Code的代码补全和界面还可以&#xff0c;也能使用诸如通义灵码等插件&#xff0c;但相比之下&#xff0c;CLion更为出色。 虽然在嵌入式Linux开发里&a…

怎样才能远程了解在iPhone、iPad上看了什么网站、用了什么APP?

有不少家长在网上吐槽&#xff1a; ——自家小孩每天抱着手机看&#xff0c;一看就两三个小时&#xff0c;到底在看什么&#xff1f; ——没有不允许小孩玩手机&#xff0c;但他一玩就一整天&#xff0c;用什么户外活动、家庭活动都吸引不回来。 ——每次问小孩在手机上看什…

Python酷玩之旅_如何在Centos8顺利安装Python最新版(3.12)

全文导览 前言Q&#xff1a;如何在Centos8顺利安装Python最新版一. 下载安装包1.1 wget1.2. 官网下载 二. 执行安装2.1. 检查环境2.2. 安装依赖2.3. 解压tgz包2.4. 编译2.5. 安装2.6. 设置环境变量2.6.1 编辑/etc/profile2.6.2 激活生效 三. 操作示例3.1. helloworld 结语 前言…

研一上课计划2024/9/23有感

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、需要认真上课的1.应用数理统计&#xff08;开卷考试&#xff09;2.最优化方法&#xff08;开卷考试&#xff09;3.跨文化交际&#xff08;主题演讲20课堂讨…

基于微信小程序的童装商城的设计与实现+ssm论文源码调试讲解

2 系统开发环境 2.1微信开发者工具 微信开发者工具现在已经被小程序开发团队开发运行&#xff0c;目前微信开发者工具任然在不断的完善中&#xff0c;在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具&#xff0c;开发者工具将使用这个微信帐号的信息进行小程…