请介绍Python中的继承和多态的概念,并举例说明如何继承和重写父类的方法
时间: 2024-05-15 17:17:37 浏览: 26
继承和多态是面向对象编程中的两个重要概念。
继承是指子类可以继承父类的属性和方法,子类可以使用父类中的方法和属性,而不需要重新定义,从而减少代码的重复。
下面是一个简单的继承示例:
```
class Animal:
def __init__(self, name):
self.name = name
def greet(self):
print(f"Hello, I'm {self.name}.")
class Dog(Animal):
def bark(self):
print("Woof!")
dog = Dog("Buddy")
dog.greet() # output: Hello, I'm Buddy.
dog.bark() # output: Woof!
```
在上面的示例中,`Dog` 继承了 `Animal` 的属性和方法,`Dog` 中没有定义 `name` 和 `greet` 方法,但是可以使用这些方法和属性,同时也可以自己定义新的方法如 `bark`。
多态是指同一个方法运用于不同类型的对象时,会产生不同的行为,即同一种行为具有多种不同表现形式或形态。
下面是一个简单的多态示例:
```
class Animal:
def sound(self):
pass
class Dog(Animal):
def sound(self):
return "Woof!"
class Cat(Animal):
def sound(self):
return "Meow!"
def animal_sound(animal):
print(animal.sound())
dog = Dog()
cat = Cat()
animal_sound(dog) # output: Woof!
animal_sound(cat) # output: Meow!
```
在上面的示例中,`animal_sound` 函数接受一个 `Animal` 类型的参数,会根据不同的类型调用不同的 `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)