面向对象编程是一种编程范式,其中数据和行为被组织为对象,对象之间通过消息传递进行交互。继承与多态是面向对象编程中的两个重要概念,它们可以帮助我们更好地组织和管理代码。

继承

继承是面向对象编程中最基本的概念之一。通过继承,一个类可以从另一个类中继承属性和方法。继承可以帮助我们避免重复编写代码,提高代码的复用性和可维护性。

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

dog = Dog("Buddy")
cat = Cat("Whiskers")

print(dog.speak())  # 输出: Woof!
print(cat.speak())  # 输出: Meow!

在上面的例子中,Animal 是一个基类,DogCat 是继承自 Animal 的子类。子类可以重写父类的方法,从而实现不同的行为。

多态

多态是面向对象编程的另一个重要概念,它允许不同的类对象对同一个方法做出不同的响应。多态可以让我们以统一的方式处理不同的对象,从而减少重复的代码。

class Shape:
    def area(self):
        pass

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

shapes = [Circle(5), Rectangle(3, 4)]

for shape in shapes:
    print(shape.area())

在上面的例子中,CircleRectangle 都继承自 Shape,并重写了 area 方法。通过多态,我们可以在一个统一的列表中存储不同的形状对象,并通过统一的方式计算它们的面积。

继承与多态是面向对象编程中非常重要的概念,它们可以帮助我们更好地组织和管理代码,提高代码的可复用性和可维护性。希望本教程可以帮助你更好地理解和应用这些概念。