PAP6.3-面向对象程序设计

在线练习 · 人工智能专业 2026级本科《Python人工智能程序设计》

说明

本练习在课堂内完成。请在本机使用 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())
  • 两行输出依次为 旺财说:汪汪!、咪咪说:喵喵!。