P128 多态问题的引出
- 先看一个问题

class Food:
name = None
def __init__(self,name):
self.name = name
class Fish(Food):
pass
class Bone(Food):
pass
class Animal:
name = None
def __init__(self,name):
self.name = name
class Dog(Animal):
pass
class Cat(Animal):
pass
class Master:
name = None
def __init__(self, name):
self.name = name
def feed__cat(self,cat :Cat,fish :Fish):
print(f"主人{
self.name},给动物:{
cat.name},喂的食物是{
fish.name}")
def feed__dog(self,dog :Dog,bone :Bone):
print(f"主人{
self.name},给动物:{
dog.name},喂的食物是{
bone.name}")
master = Master("zoran")
cat = Cat("小花猫")
fish = Fish("黄花鱼")
dog = Dog("大黄狗")
bone = Bone("大棒骨")
master.feed__cat(cat,fish)
master.feed__dog(dog,bone)
1)问题是:代码的复用性不高,而且不利于代码维护和功能扩展
2)解决方案:引出我们要讲解的多态
P129 多态细节和使用
1. 多态介绍&特别说明

class Animal:
def cry(self):
pass
class