说明
本练习在课堂内完成。请在本机使用 VS Code、Cursor 或 Devin Desktop 编写并运行,再将源代码与终端输出填入各题下方的文本框。
练习一:子类重写方法
编写程序,定义动物类,以及狗和猫两个子类。子类各自实现叫声。
要求
- 定义
Animal。__init__(self, name)将名字保存到self.name。speak(self)不返回叫声。 - 定义
Dog(Animal)。speak(self)返回{name}说:汪汪!。 - 定义
Cat(Animal)。speak(self)返回{name}说:喵喵!。 - 在程序中创建并打印:
dog = Dog("小黄")
cat = Cat("小花")
print(dog.speak())
print(cat.speak())
- 两行输出依次为
小黄说:汪汪!、小花说:喵喵!。
练习二:调用父类方法
编写程序,定义车辆类和轿车子类。轿车启动时先使用父类的启动说明,再补上车门数量。
要求
- 定义
Vehicle。__init__(self, brand, model)将品牌保存到self.brand,将型号保存到self.model。start(self)返回{brand} {model}启动了。 - 定义
Car(Vehicle)。__init__(self, brand, model, doors)使用super().__init__(brand, model)保存品牌和型号,并将车门数量保存到self.doors。 Car.start(self)先使用super().start()取得父类说明,再返回{父类说明},有{doors}个门。- 在程序中创建并打印:
car = Car("小米汽车", "SU7", 4)
print(car.start())
- 输出为
小米汽车 SU7启动了,有4个门。
练习三:重写面积计算
编写程序,定义形状类和圆类。圆类重写面积,父类的说明语句调用重写后的面积。
要求
- 定义
Shape。area(self)返回0。describe(self)返回这是一个形状,面积为{area},其中面积来自self.area()。 - 定义
Circle(Shape)。__init__(self, radius)将半径保存到self.radius。 area(self)返回3.14159 * self.radius ** 2。系数使用3.14159。- 在程序中创建并打印:
circle = Circle(5)
print(circle.describe())
- 输出为
这是一个形状,面积为78.53975。
练习四:同一列表中的不同对象
编写程序,将狗和猫放在同一个列表中,使用循环调用各自的叫声。
要求
Animal、Dog、Cat的定义与练习一相同。- 在程序中写入下面的列表,并逐只打印叫声:
animals = [Dog("旺财"), Cat("咪咪")]
for animal in animals:
print(animal.speak())
- 两行输出依次为
旺财说:汪汪!、咪咪说:喵喵!。