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

【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.dtcms.com/a/269343.html

相关文章:

  • 使用 GDB 调试 Redis 服务进程指南
  • pyhton基础【25】面向对象进阶六
  • 【ARM AMBA AXI 入门 21.1 -- AXI partial 访问和软件的按字节访问关系】
  • Transformer模型架构深度讲解
  • 医疗AI底层能力全链条工程方案:从技术突破到临床落地
  • L0:让大模型成为通用智能体的强化学习新范式
  • 针对Exhcnage Server的攻击防范措施
  • 机器人VLA模型(Vision-Language-Action)
  • 网络安全之XSS漏洞:原理、危害与防御实践
  • 基于mysql8.0.27部署1主2从的MHA集群
  • 从问题出发看Spring的对象创建与管理
  • JDBC 注册驱动的常用方法详解
  • 7.7晚自习作业
  • 两个法宝函数-dir()和help()
  • 网络基本知识和网络传输过程
  • 深度学习7(梯度下降算法改进1)
  • H3初识——入门介绍之serveStatic、cookie
  • AI + 数据治理的趋势:让治理更智能、更敏捷
  • linux操作系统---MySQL Galera Cluster部署
  • 开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用
  • Vidwall: 支持将 4K 视频设置为动态桌面壁纸,兼容 MP4 和 MOV 格式
  • Python 的内置函数 setattr
  • 小架构step系列07:查找日志配置文件
  • Spring Boot登录认证实现学习心得:从皮肤信息系统项目中学到的经验
  • 【力扣(LeetCode)】数据挖掘面试题0002:当面对实时数据流时您如何设计和实现机器学习模型?
  • 独立开发A/B测试实用教程
  • 计算阶梯电费
  • [vroom] docs | 输入与问题定义 | 任务与运输工具 | json
  • 【Mac 从 0 到 1 保姆级配置教程 19】- 英语学习篇-我的英语工作流分享(AI 辅助学习)
  • 基于Arduino Leonardo的机械键盘设计与实现(项目资料)(ID:10)