第十七节:继承和多态

第十七节:继承和多态

不过尔尔 6 2021-07-15

继承

继承是一种机制,它允许你创建一个新的类(子类或派生类),该类继承了另一个类(父类或基类)的属性和方法。子类可以重用父类的代码,并且可以在其上添加新的属性和方法,或者覆盖(重写)父类的方法。

 # 定义一个父类
 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())  # 不同子类的实例调用相同方法名,实现多态

多态使得在不知道对象的具体类型的情况下能够调用相同的方法名,这对于编写通用的代码非常有用。

继承和多态是面向对象编程中的关键概念,它们允许你构建更具层次结构和灵活性的代码。通过合理使用继承和多态,你可以更好地组织代码并提高代码的可复用性和可维护性。