Menu
CoddyTech

继承基础

本课属于 Coddy Python 学习旅程的“面向对象编程”单元。第 17 课,共 64 课。

继承允许一个类从另一个类继承属性和方法,从而建立父子关系。

下面是一个父类的示例:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

创建一个继承自父类的子类:

class Dog(Animal):
    pass  # 继承 Animal 的所有内容

语法 class Dog(Animal): 表示 Dog 继承自 Animal。将父类名称放在括号中。

从这两个类创建对象:

generic_animal = Animal("Creature")
buddy = Dog("Buddy")

使用继承的方法:

generic_animal.info()
buddy.info()

输出:

I am Creature, an animal
I am Buddy, an animal

虽然 Dog 没有定义 __init__ 或 info,但它会自动从 Animal 继承这些内容。

你可以向子类添加新方法:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # 继承的方法
buddy.bark()  # 新方法

输出:

I am Buddy, an animal
Buddy says Woof!

重点:子类会继承父类的所有属性和方法。使用 class Child(Parent): 语法来创建继承关系。这有助于你复用代码并创建逻辑清晰的类层次结构。

challenge icon

挑战

中等
  • vehicle.py:包含父类 Vehicle
  • car.py:包含继承自 Vehicle 的 Car 类
  • driver.py:用于测试你的实现的主文件

每个文件都包含详细的 TODO 注释,指导你完成实现。你需要:

  • 为 Vehicle 类补全 make 和 model 属性
  • 在 Car 类中正确实现类继承
  • 在文件之间设置正确的导入语句
  • 在 driver 文件中创建并测试对象

仔细遵循 TODO 注释,它们会一步步指导你完成答案。

亲手试试

# TODO:从 vehicle.py 导入 Vehicle 类
# TODO:从 car.py 导入 Car 类

# TODO:创建一个 Vehicle 对象,将 make 设为 "Toyota",model 设为 "Corolla"
vehicle = None

# TODO:创建一个 Car 对象,将 make 设为 "Honda",model 设为 "Civic"
car = None

# TODO:调用 vehicle 对象的 display_info() 方法
# 预期输出:"Vehicle: Toyota Corolla"

# TODO:调用 car 对象的 display_info() 方法
# 预期输出:"Vehicle: Honda Civic"
# 注意:Car 直接继承 Vehicle 的 display_info 方法,没有进行修改
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: Python 在线编译器