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

文章目录

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

1、继承的基本语法

(1)单继承

bash 复制代码
# 继承
# 父类
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)多重继承

bash 复制代码
    class 父类1:
    pass

class 父类2:
    pass

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

2、方法重写

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

bash 复制代码
class Animal:
    def speak(self):
        return "通用叫声"

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

3、super()函数

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

bash 复制代码
class Fruit:
    def __init__(self, color="绿色"):
        Fruit.color = color

    def harvest(self):
        print("水果原来是:" + Fruit.color + "的!")


class Apple(Fruit):
    def __init__(self):
        print("我是苹果!")


apple = Apple()
apple.harvest()

直接运行上面的代码有报错:

原因是在子类的__init__()方法中不会自动调用父类的__init__()方法,需要使用super()函数。

bash 复制代码
class Fruit:
    def __init__(self, color="绿色"):
        Fruit.color = color

    def harvest(self):
        print("水果原来是:" + Fruit.color + "的!")


class Apple(Fruit):
    def __init__(self):
        print("我是苹果!")
        super().__init__()  ## 调用父类的__init__()方法


apple = Apple()
apple.harvest()
相关推荐
互联网中的一颗神经元7 小时前
小白python入门 - 25. SQL 与表设计入门
数据库·python·sql
Yeauty7 小时前
渲染成图再 CLI 拼接,还是进程内直推?Rust 帧到视频的两条路
开发语言·rust·音视频
geovindu8 小时前
CSharp: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·算法·c#·.net·搜索算法
RSTJ_16258 小时前
PYTHON+AI LLM DAY ONE HUNDRED AND EIGHTEEN
python
开源量化GO8 小时前
近期量化学习路径,交易理解和技术实现要接上
人工智能·python
库克克8 小时前
【C++】set 与multiset
开发语言·c++
Wang's Blog9 小时前
Go-Zero项目开发34: 微服务超时控制与重试机制实践
开发语言·微服务·golang·go-zero
tkevinjd9 小时前
MiniCode 项目详解7:Memory 记忆系统
大数据·python·搜索引擎·llm·agent
郭老二9 小时前
【Python】Web框架 FastAPI 详解
python·fastapi
DFT计算杂谈9 小时前
交错磁研究进展材料物性与交叉应用
数据库·人工智能·python·opencv·算法