ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 多态 > 大家先想一想在电视上有没有见过这样的事情: 有一个中医世家,父亲是当地一位非常有名的老大夫,看病看的非常好,儿子从小就跟着父亲学医,医术也不错. 突然县太爷家的千金生了重病,急需老大夫前去治病,但是老大夫又不在家,就请了老大夫的儿子前去给治病. 最后儿子也把病给治好了. > > 大家应该听说过这样的故事吧. 那么,在python语言中能不能做类似的事情,比如说 在需要调用父类对象方法的地方,我们也可以调用子类对象的方法呢? ~~~ 当然可以! 要想这样,我们需要使用接下来要学习的知识点:多态. 好,下面我们就开始正式讲解 多态.在讲解的时候: 1.先讲解"多态"的概念 2.再讲解如何使用多态 3.最后讲解多态的好处 ~~~ ### 什么是多态? 在需要使用父类对象的地方,也可以使用子类对象, 这种情况就叫多态. 比如, 在函数中,我需要调用 某一个父类对象的方法, 那么我们也可以在这个地方调用子类对象的方法. ### 如何在程序中使用多态? ~~~ 可以按照以下几个步骤来写代码: 1.子类继承父类 2.子类重写父类中的方法 3.通过对象调用这个方法 ~~~ * 示例代码 ~~~ # 定义父类 class Father(object): def cure(self): print("父亲给病人治病...") # 定义子类继承父类 class Son(Father): # 重写父类中的方法 def cure(self): print("儿子给病人治病...") # 定义函数,在里面 调用 医生的cure函数 def call_cure(doctor): # 调用医生治病的方法 doctor.cure() # 创建父类对象 father = Father() # 调用函数,把父类对象传递函数 call_cure(father) # 创建子类对象 son = Son() # 调用函数,把子类对象传递函数 call_cure(son) ~~~ ### 使用多态的好处 给call\_cure(doctor)函数传递哪个对象,在它里面就会调用哪个对象的cure()方法,也就是说在它里面既可以调用son对象的cure()方法,也能调用father对象的cure()方法,当然了也可以在它里面调用Father类其它子类对象的cure()方法,这样可以让call\_cure(doctor)函数变得更加灵活,额外增加了它的功能,提高了它的扩展性.