Python面向对象的特点(三)多态

1.定义

在面向对象编程中,不同的子类对象调用相同的父类方法,产生不同的执行结果;

  • 多态可以增加代码的灵活度;
  • 以继承和重写父类方法为前提;
  • 是调用方法的技巧,不会影响到类的内部设计

代码示例:

需求:定义狗类和人类,要求普通的狗类开心的玩耍,特殊的狗类和米老鼠玩耍。

class Dog(object):
    def __init__(self,name):
        self.name = name
    def game(self):
        print('%s 开心的玩耍~' %(self.name))

class Pluto(Dog):
    # 父类的方法不能满足子类的需求 重写game方法
    def game(self):
        print('%s和米老鼠一起玩~' %(self.name))


class Person(object):
    def __init__(self,name):
        self.name = name
    def game_with_dog(self,dog):
        print('%s和%s玩~' %(self.name,dog.name))
        dog.game()

# 创建一个狗对象
wangcai = Dog('大黄')
#创建另一个狗对象
#wangcai = Pluto('布鲁托')      
# 创建一个人对象
xiaoming = Person('小明')

# 让小明和狗玩
xiaoming.game_with_dog(wangcai)

结果:

发布了74 篇原创文章 · 获赞 7 · 访问量 2997

猜你喜欢

转载自blog.csdn.net/qq_42806574/article/details/104141593