day19 多态

#多态
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)


'''
晓明喜欢养宠物:猫,昵称是小咪
晓明喜欢养宠物:狗,昵称是大黄
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值