当前位置: 首页 > ds >正文

【Python进阶篇 面向对象程序设计(3) 继承】

文章目录

    • 1、继承的基本语法
    • (1)单继承
    • (2)多重继承
    • 2、方法重写
    • 3、super()函数

在面向对象编程中,被继承的类称为父类,新的类称为子类。

1、继承的基本语法

(1)单继承

# 继承
# 父类
class Fruit:color = '绿色'def harvest(self, color):print("水果是:" + color + "的!")print("水果原来是:" + Fruit.color + "的!")# 子类
class Apple(Fruit):color = '红色'def __init__(self):print("我是苹果")class Orange(Fruit):color = '橙色'def __init__(self):print("\n我是橘子")apple = Apple()
apple.harvest(apple.color)
orange = Orange()
orange.harvest(orange.color)

在这里插入图片描述

(2)多重继承

    class 父类1:passclass 父类2:passclass 子类(父类1, 父类2):  # 子类继承多个父类pass 

2、方法重写

子类可以覆盖父类的方法,实现自定义行为。

class Animal:def speak(self):return "通用叫声"class Dog(Animal):def speak(self):  # 重写父类方法return "Woof!"

3、super()函数

调用父类的方法(常用于初始化和扩展功能)。

class Fruit:def __init__(self, color="绿色"):Fruit.color = colordef harvest(self):print("水果原来是:" + Fruit.color + "的!")class Apple(Fruit):def __init__(self):print("我是苹果!")apple = Apple()
apple.harvest()

直接运行上面的代码有报错:
在这里插入图片描述
原因是在子类的__init__()方法中不会自动调用父类的__init__()方法,需要使用super()函数。

class Fruit:def __init__(self, color="绿色"):Fruit.color = colordef harvest(self):print("水果原来是:" + Fruit.color + "的!")class Apple(Fruit):def __init__(self):print("我是苹果!")super().__init__()  ## 调用父类的__init__()方法apple = Apple()
apple.harvest()

在这里插入图片描述

http://www.xdnf.cn/news/15058.html

相关文章:

  • Java 大视界 -- 基于 Java 的大数据可视化在企业供应链动态监控与优化中的应用(336)
  • 爬虫之淘宝商品详情获取实战
  • Redis 配置与启动指南
  • 【kafka-python使用学习笔记2】Python操作Kafka之环境准备(2)亲测有效有图有真相
  • 大模型在肾囊肿诊疗全流程预测及应用研究报告
  • 动手学深度学习13.7. 单发多框检测(SSD)-笔记练习(PyTorch)
  • 10.5 实战ChatGLM3私有数据微调之提示工程:批量生成数据稳定性秘籍
  • python的巡游出租管理系统
  • 初识Neo4j之Cypher(三)
  • 【Linux | 网络】网络基础
  • RAG实战指南 Day 8:PDF、Word和HTML文档解析实战
  • 【ARM AMBA AXI 入门 21.1 -- AXI partial 访问和软件的按字节访问关系】
  • 一文讲清楚React Fiber
  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔
  • FastAPI依赖注入:构建高可维护API的核心理念与实战
  • HCIA-生成数协议(STP)
  • IRF堆叠技术的主要优势
  • Flutter 每日翻译之 Widget
  • 开关电源抄板学习
  • C++ 中左值和右值
  • 小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
  • PanoSAM:使用 Meta Segment Anything 模型对全景图像中的点云数据进行无监督分割
  • 深入理解 classnames:React 动态类名管理的最佳实践
  • 设计模式之迭代器模式
  • 基于改进多目标优化算法的众包物流配送调度研究
  • 【机器学习笔记Ⅰ】2 线性回归模型
  • 百度文心大模型 4.5 开源深度测评:技术架构、部署实战与生态协同全解析
  • 编程语言艺术:C语言中的属性attribute笔记总结
  • bro code笔记 inheritance
  • 从前端转nest.js开发的学习路线