-
多态
''' 多态: 多种形态 在类的方法中,参数是一个父类的统称,可以接收该父类下的所有子类型。 在方法中使用isinstance(对象,类别)进行类别的判断 isinstance(对象,类别)函数的返回值是:bool ''' class PetShop: def __init__(self, name): self.name = name self.pets = set() def add_pet(self, pet): # pet=phone pet=cat pet=dog pet=rabit # 使用isinstance判断类型 if isinstance(pet, Pet): self.pets.add(pet) print('添加成功!') else: print('不是宠物,不收!') def sale_pet(self, pet): pass def show_pet(self): for pet in self.pets: print(pet) # 将共同的特征提取到父类中 class Pet: def __init__(self, id, nickname, color): self.id = id self.nickname = nickname self.color = color def __str__(self): return self.nickname class Dog(Pet): type = '狗' def see_house(self): print('小狗的特长就是看家....') class Cat(Pet): type = '猫' def catch_mouse(self): print('小猫的特长就是抓大老鼠....') class Phone: def __init__(self, brand, price): self.brand = brand self.price = price def __str__(self): return self.brand shop = PetShop('爱宠宠物商店') phone = Phone('华为', 3999) shop.add_pet(phone) dog1 = Dog(1, '大黄', '黄色') shop.add_pet(dog1) cat1 = Cat(2, '花花', '灰色') shop.add_pet(cat1) # # phone1 = Phone('oppo', 1999) # shop.add_pet(phone1) # 遍历打印所有的宠物 shop.show_pet()
多态
最新推荐文章于 2025-02-21 21:49:38 发布