
今天说一哈,面向对象中的 “多态”,(等等,多,多态?多姿多态?)
一、概念:以下实例,已经客观的说明了多态的特性,至于作用还得靠大家琢磨奥~
class Teacher():
def work(self):
pass
class FE_Teacher(Teacher):
def work(self):
print('大家跟我学前端')
class Java_Teacher(Teacher):
def work(self):
print('大家跟我学java')
class School():
def give_lessons(self,teacher): # 此时的参数teacher接受的是某个子类的对象
teacher.work()
# 调用work()方法,其实这句代码构成了:对象.方法名称 的样式,也就是普普通通的创建对象,然后再这个对象中调用方法
fe=FE_Teacher()
java=Java_Teacher() # 创建两个老师对象
school=School() # 创建 最重要的这个学校对象
school.give_lessons(java) # 执行结果为:大家跟我学java
# 上面这行代码其实就是: 在学校对象的 “give_lessons” 方法中,把你选择的老师对象 当做参数传递进来,从而执行老师的方法
school.give_lessons(fe) #执行结果为:大家跟我学前端
注: 代码我已经备注的很详细了,嘴笨,还望大家谅解~
多态其实得目光远一点才能更好的体会它的作用,扩展性我认为很nice
最后:大家有什么问题,和好的建议可以留在评论区奥~