chiikawa&q 2024-09-24 12:43 采纳率: 93.3%
浏览 3
已结题

Python重写方法优化问题

在Python中,假设你有一个名为Animal的基类,它有一个方法make_sound(),该方法默认打印出"This animal makes a generic sound."。现在,你希望创建两个子类DogCat,分别重写make_sound()方法以输出更具体的动物声音(比如狗叫"Woof!",猫叫"Meow!")。

此外,你还需要添加一个speak()方法到Animal类中,该方法仅调用make_sound()。你的任务是:

  1. 定义一个Animal基类,包含make_sound()speak()方法。
  2. 定义DogCat两个子类,分别重写make_sound()方法以输出各自的声音。
  3. 创建DogCat的实例,并调用它们的speak()方法,观察输出是否如预期(狗叫"Woof!",猫叫"Meow!")。
class Animal:  
    def make_sound(self):  
        print("This animal makes a generic sound.")  
  
    def speak(self):  
        self.make_sound()  
  
# 在这里定义Dog和Cat类,并重写make_sound()方法  
  
# 创建Dog和Cat的实例,并调用speak()方法  
# dog = Dog()  
# cat = Cat()  
# dog.speak()  # 应输出: Woof!  
# cat.speak()  # 应输出: Meow!
  • 写回答

2条回答 默认 最新

  • 小ᶻ☡꙳ᵃⁱᵍᶜ꙳ 优质创作者: 人工智能技术领域 2024-09-28 13:32
    关注

    回答引用自GPT-4o,由博主小ᶻZ࿆编写,若还有疑问可评论或留言:

    解答:

    在这个问题中,你需要定义一个基类 Animal,其中包含一个方法 make_sound(),默认打印 "This animal makes a generic sound."。然后定义两个子类 DogCat,它们分别重写 make_sound() 方法,输出各自的声音(狗叫 "Woof!",猫叫 "Meow!")。此外,还需要在 Animal 类中定义一个 speak() 方法,用于调用 make_sound() 方法。

    实现代码如下:

    class Animal:
        def make_sound(self):
            print("This animal makes a generic sound.")
        
        def speak(self):
            self.make_sound()
    
    class Dog(Animal):
        def make_sound(self):
            print("Woof!")
    
    class Cat(Animal):
        def make_sound(self):
            print("Meow!")
    
    # 创建 Dog 和 Cat 的实例,并调用 speak() 方法
    dog = Dog()
    cat = Cat()
    
    dog.speak()  # 输出: Woof!
    cat.speak()  # 输出: Meow!
    

    解释:

    1. Animal 类是基类,提供了一个默认的 make_sound() 方法,打印通用的声音。

    2. DogCat 类是 Animal 的子类,它们分别重写了 make_sound() 方法,以打印各自的叫声。

    3. 调用 speak() 方法时,会调用重写的 make_sound(),确保输出正确的声音。

    输出结果:

    Woof!
    Meow!
    

    如有帮助,题主可以帮忙采纳一下嘛,谢谢~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月30日
  • 已采纳回答 9月29日
  • 创建了问题 9月24日