#多态
class Person:
def __init__(self,name):
self.name=name
def feed_pet(self,pet):#既可以接收猫,也可以接收狗...甚至是老虎!!而java中只有都是pet子类才可以,因此我们需要自行判断
#isinstance(obj,类)--判断obj是不是类的对象或者obj是不是该类子类对象
if isinstance(pet,Pet):
print('{}喜欢养宠物:{},昵称是{}'.format(self.name,pet.role,pet.nickname))
else:
print('不是宠物')
class Pet:
role='Pet'
def __init__(self,nickname,age):
self.nickname=nickname
self.age=age
def show(self):
print('昵称{},年龄{}'.format(self.nickname,self.age))
class Cat(Pet):
role='猫'
def catch_mouse(self):
print('抓老鼠...')
class Dog(Pet):
role = '狗'
def watch_house(self):
print('看家高手...')
class Tiger:
pass
#创建对象
cat=Cat('小咪',2)
dog=Dog('大黄',4)
tiger=Tiger()
p=Person('晓明')
p.feed_pet(cat)
p.feed_pet(dog)
p.feed_pet(tiger)
'''
晓明喜欢养宠物:猫,昵称是小咪
晓明喜欢养宠物:狗,昵称是大黄
'''
day19 多态
最新推荐文章于 2022-08-03 16:54:45 发布