Python基础核心经典教程(029)——面向对象特征之多态
程序员文章站
2022-03-27 10:41:04
之前,我们已经讲解了面向对象的两大特征:封装和继承。那么,什么又是多态呢?多态,简而言之就是多种形态。多态的两大前提:- 1、继承- 2、子类重写父类方法在这两大前提之下:不同的子类对象调用相同的父类方法,将产生不同的执行结果;这就是多态。...
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址: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
上一篇: 华中科技大学秒杀中科大?考上华中科技大学算学霸吗?
下一篇: 荣耀手环体重怎么自动更新至个人信息?