面向对象如何实现多态
时间: 2024-05-19 15:10:27 浏览: 20
多态是面向对象编程中的一个重要概念,它允许不同的对象对同一个消息做出不同的响应。在实现多态时,需要使用继承和方法重写两个关键技术。
首先,你需要定义一个父类(也称为基类或超类),其中包含一个方法。然后,你可以创建多个子类(也称为派生类),它们继承了父类并可以重写父类的方法。
接下来,你可以根据需要创建不同的子类对象,并将它们赋值给父类的引用。当调用这个引用上的方法时,实际执行的是子类中重写后的方法。
这种方式实现多态的核心思想是通过父类的引用指向子类的对象,从而可以根据具体对象的类型来调用相应的方法。
以下是一个示例代码,演示了如何实现多态:
```python
class Animal:
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
print("汪汪汪")
class Cat(Animal):
def make_sound(self):
print("喵喵喵")
# 创建不同的子类对象,并将它们赋值给父类引用
animal1 = Dog()
animal2 = Cat()
# 调用父类引用上的方法,实际执行的是子类中重写后的方法
animal1.make_sound() # 输出:汪汪汪
animal2.make_sound() # 输出:喵喵喵
```
在上述代码中,`Animal` 是父类,`Dog` 和 `Cat` 是子类。它们都继承了 `Animal` 类,并重写了其中的 `make_sound` 方法。通过创建不同的子类对象,并使用父类引用调用方法,可以实现多态效果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)