继承
继承是一种机制,它允许你创建一个新的类(子类或派生类),该类继承了另一个类(父类或基类)的属性和方法。子类可以重用父类的代码,并且可以在其上添加新的属性和方法,或者覆盖(重写)父类的方法。
# 定义一个父类
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
# 定义子类继承父类
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"
# 创建子类的实例
dog = Dog("Buddy")
cat = Cat("Whiskers")
# 调用子类方法,实现多态
print(dog.speak()) # 输出: "Buddy says Woof!"
print(cat.speak()) # 输出: "Whiskers says Meow!"
多态
多态是一种概念,它允许不同类的对象对相同的方法名作出不同的响应。多态通过继承和方法重写来实现,它提高了代码的灵活性和可扩展性。在上面的示例中,speak
方法在不同的子类中被重写,以实现多态。
多态使得可以使用父类的引用来引用子类的对象,从而简化了代码,同时也让代码更具通用性。
# 使用父类的引用来引用子类的对象
animals = [Dog("Buddy"), Cat("Whiskers")]
for animal in animals:
print(animal.speak()) # 不同子类的实例调用相同方法名,实现多态
多态使得在不知道对象的具体类型的情况下能够调用相同的方法名,这对于编写通用的代码非常有用。
继承和多态是面向对象编程中的关键概念,它们允许你构建更具层次结构和灵活性的代码。通过合理使用继承和多态,你可以更好地组织代码并提高代码的可复用性和可维护性。