多态
多态使用
一种事物的多种体现形式,举例:动物有很多种
注意: 继承是多态的前提
函数重写就是多态的体现形式
演示:
思路:
第一步:先定义猫类和老鼠类,继承自object,在其中书写构造方法和eat方法
第二步: 抽取Animal父类,定义属性和eat方法,猫类与老鼠类继承即可
第三步: 定义人类,在其中分别定义喂猫和喂老鼠的方法
第四步:使用多态,将多个喂的方法提取一个
# 测试类
from cat import Cat
from mouse import Mouse
from person import Person
'''
多态: 一种事物的多种状态
需求:人可以喂任何一种动物
'''
#创建猫和老鼠的对象
tom = Cat("tom")
jerry = Mouse("jerry")
#调用各自的方法
tom.eat()
jerry.eat()
#思考:在添加100种动物,也都有name属性和eat方法--> 体现继承的好处
#定义了一个有name属性和eat方法的Animal类,让所有的动物类都继承自Animal.
#定义一个人类,可以喂猫和老鼠吃东西
per = Person()
#per.feedCat(tom)
#per.feedMouse(jerry)
#思考:人要喂100种动物,难道要写100个feed方法吗?
#前提:tom和jerry都继承自动物
per.feedAnimal(tom)
per.feedAnimal(jerry)
class Animal(object):
def __init__(self, name):
self.name = name
def eat(self):
print(self.name + "吃")
#猫类
from animal import Animal
class Cat(Animal):
def __init__(self, name):
#self.name = name
supper(Cat,self).__init__(name)
#老鼠类
from animal import Animal
class Mouse(Animal):
def __init__(self, name):
#self.name = name
super(Mouse,self).__init__(name)
#人类
class Preson(oject):
def feedAnim(self, ani)
print("给你食物")
ani.eat()