多态
多态是指一类事物有多种形态,即一个抽象类有多个子类,因而多态的概念依赖于继承
多态性
一个接口,多种实现,可以简单理解为具有不同功能的函数使用相同的函数名,这样就可以用一个函数名调用不同的函数功能
就像,你的家人 你的妻子 你的丈夫 你的兄弟 你的姐妹 等等,都给你发一样的消息,比如都给你发早上好,那么你对不同的人也会有不同回复行为
多态实现
只需要对象的实例方法同名,对象所属的类不一定要有继承关系
优点:
- 多态可以增加代码的外部调用灵活度,增加代码的通用性,提高兼容性
- 多态是调用方法的技巧,在类做内部设计时不受影响
class Person():
def run(self):
print('我是人')
class Man(Person):
def run(self):
print('我是父亲')
class Woman(Person):
def run(self):
print('我是母亲')
class Son(Woman, Man):
def run(self):
print('我是孩子')
def main(people):
people.run()
p = Person()
m = Man()
w = Woman()
s = Son()
main(m) # 我是父亲
class Person():
def run(self):
print('我是人')
class Man():
def run(self):
print('我是父亲')
class Woman():
def run(self):
print('我是母亲')
class Son():
def run(self, people):
main(people)
print('我是孩子')
def main(people):
people.run()
p = Person()
m = Man()
w = Woman()
s = Son()
s.run(w)