继承基础
本课属于 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): 语法来创建继承关系。这有助于你复用代码并创建逻辑清晰的类层次结构。
挑战
中等vehicle.py:包含父类Vehiclecar.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 方法,没有进行修改这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Python 在线编译器