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