多态是基于继承的,他是指⽗类中定义的属性和⽅法被⼦类继承之后,可以具有不同的数据 类型或者表现出不同的⾏为,使得同⼀个属性在⽗类及其⼦类中具有不同的含义。详细举例说明
时间: 2024-04-08 15:31:22 浏览: 28
Python 的类、继承和多态详解
当我们说多态是基于继承的时候,意味着多态性是通过子类继承父类的属性和方法来实现的。在多态中,子类可以根据需要重写或扩展父类的方法,从而表现出不同的行为。
让我们通过一个例子来详细说明多态性的概念。假设我们有一个父类Animal(动物),它有一个方法叫做"makeSound"(发出声音)。然后我们有两个子类Dog(狗)和Cat(猫),它们都继承自Animal类。
在Animal类中,"makeSound"方法可能是这样定义的:
```python
class Animal:
def makeSound(self):
print("Animal makes a sound")
```
现在我们在Dog类和Cat类中重写"makeSound"方法,使它们分别发出不同的声音:
```python
class Dog(Animal):
def makeSound(self):
print("Dog barks")
class Cat(Animal):
def makeSound(self):
print("Cat meows")
```
现在我们可以创建一个Animal类型的变量,并根据需要将其赋值为Dog或Cat的实例。当我们调用"makeSound"方法时,根据变量的实际类型,将执行相应的子类方法。
```python
animal1 = Dog()
animal2 = Cat()
animal1.makeSound() # 输出:Dog barks
animal2.makeSound() # 输出:Cat meows
```
正是因为多态性,我们可以使用通用的父类类型来处理不同的子类对象,而不需要关心它们的具体类型。这为我们编写灵活且可扩展的代码提供了便利。
阅读全文