基础DAY9-多态 实例 类属性

不同的子类对象调用相同的父类方法,产生不同结果

  • 可以增加代码的灵活度
  • 以继承和重写父类方法为前提
  • 是调用方法的技巧,不会影响到类的内部设计
class Dog(object):
    def __init__(self, name):
        self.name = name
    def game(self):
        print("蹦蹦跳跳玩耍%s" % self.name)

class XiaotianDog(Dog):
    def game(self):
        print("%s 在天上玩耍" % self.name)

class Persion(object):
    def __init__(self, name):
        self.name = name
    def game_with_dog(self,dog):
        print("%s %s快乐玩耍" % (self.name, dog.name))
        dog.game()
# 1 创建狗对象
# 2 创建晓明对象
# 3 让小明和狗玩的方法
#wangcai = Dog("旺财")
wangcai = XiaotianDog("飞天旺财")
xm = Persion("小明")
xm.game_with_dog(wangcai)
不同子类对象

 

class Tool(object):
    # 使用赋值语句定义类属性,记录所有工具对象的数量
    count = 0
    def __init__(self, name):
        self.name = name
        # 让类属性的值+1
        Tool.count += 1
# 创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("钳子")
tool3 = Tool("夹子")
tool4 = Tool("电钻")
# 输出工具总数
print(Tool.count)
类属性

原文地址:https://www.cnblogs.com/joycezhou/p/11391196.html