当前位置: 移动技术网 > IT编程>脚本编程>Python > Python基础核心经典教程(029)——面向对象特征之多态

Python基础核心经典教程(029)——面向对象特征之多态

2020年07月11日  | 移动技术网IT编程  | 我要评论

版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

多态概述

之前,我们已经讲解了面向对象的两大特征:封装和继承。那么,什么又是多态呢?多态,简而言之就是多种形态。

多态的两大前提:

  • 1、继承
  • 2、子类重写父类方法

在这两大前提之下:不同的子类对象调用相同的父类方法,将产生不同的执行结果;这就是多态。

多态示例

"""
原创作者:谷哥的小弟
博客地址:http://blog.csdn.net/lfdfhl
示例描述:面向对象三大特征——多态
"""


# 定义学生类
class Student:
    def __init__(self, name):
        self.name = name

    def answer(self):
        print("%s回答问题" % self.name)


# 定义继承自Student的学霸类
class GoodStudent(Student):
    # 重写父类的方法
    def answer(self):
        print("%s非常流利地回答问题" % self.name)
    pass


# 定义继承自Student的学渣类
class BadStudent(Student):
    # 重写父类的方法
    def answer(self):
        print("%s磕磕巴巴地回答问题" % self.name)
    pass


# 定义老师类
class Teacher:
    def ask(self, student):
        print("老师请学生%s回答问题" % student.name)
        # 学生回答问题
        student.answer()


# 创建Teacher对象
teacher = Teacher()
# 创建GoodStudent对象
goodStudent = GoodStudent("lucy")
# 创建BadStudent对象
badStudent = BadStudent("jack")
# 老师提问
teacher.ask(goodStudent)
# 老师提问
teacher.ask(badStudent)

在这里插入图片描述在该示例中:

  • 1、GoodStudent和BadStudent继承自同一个父类Student
  • 2、GoodStudent和BadStudent均重写了父类Student的answer( )方法
  • 3、Teacher类的ask( )方法要求传入一个Student;所以,传GoodStudent或BadStudent的对象均可

本文地址:https://blog.csdn.net/lfdfhl/article/details/106130769

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网