class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def __init__(self, name):
super().__init__(name)
def speak(self):
return "Woof!"
def bark(self):
return self.speak()
class Cat(Animal):
def __init__(self, name):
super().__init__(name)
def speak(self):
return "Meow!"
def meow(self):
return self.speak()
代码结构优化阐述
- 避免重复代码:
- 将公共属性
name
和公共方法speak
放到基类Animal
中,Dog
和Cat
类继承Animal
,这样就避免了在Dog
和Cat
类中重复定义name
属性和speak
方法。
- 合理使用
super
关键字:
- 在
Dog
和Cat
类的__init__
方法中,使用super().__init__(name)
调用基类Animal
的__init__
方法来初始化name
属性,这样既保证了代码的复用,又避免了在子类中重复编写初始化name
属性的代码。
- 在
Dog
类的bark
方法和Cat
类的meow
方法中,通过调用self.speak()
方法,复用了speak
方法的逻辑,进一步减少了重复代码。