Python笔记_第三篇_面向对象_7.多态

时间:2023-03-09 07:45:26
Python笔记_第三篇_面向对象_7.多态

1. 多态的概念

  多态:一种事物的多种形态。其表现形式就是连续的继承关系。

  还以人喂食动物的例子。最终目标是人可以喂食任何一种动物。如果人要喂食100多种动物,难道要写100中方法吗?多态就是把属性和方法进行连续的继承方式 ,把属性和方法在不同的位置进行传导。

  我们一一个图示为例子:

Python笔记_第三篇_面向对象_7.多态

  原来的继承方式是这样:

Python笔记_第三篇_面向对象_7.多态

  多态作为一种传导,变成为这样形式:

Python笔记_第三篇_面向对象_7.多态

  举例代码如下:

# 定义一个人类,可以喂猫和老鼠吃东西
# 思考:人要喂100种动物,难道要写100种方法吗?
# tom和jerry都继承自动物
class Animal(object): # 动物类
def __init__(self,name):
self.name = name def eat(self):
print(self.name + "吃") class Cat(Animal): # 猫类
def __init__(self,name):
super(Cat,self).__init__(name) class Mouse(Animal): # 老鼠类
def __init__(self, name):
super(Mouse, self).__init__(name) class Person(object):
def feedAnimal(self,ani): # 直接继承自Animal就实现了多态。
print("给你食物")
ani.eat() Tom = Cat("Tom")
Jerry = Mouse("Jerry") per = Person()
per.feedAnimal(Tom) #

300 100
play
eat
func