(承接上次的知识学习)

首先给出方法重写的定义:

1.如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写;

2.子类重写后的方法可以通过super().xxx()调用父类中被重写的方法。

给出以下操作代码:

class Person (object):#说明Person继承object类def __init__(self,name,age):self.name=nameself.age=agedef chs(self):print(self.name,self.age)
#定义Person子类
class Student(Person):def __init__(self,name,age,stu_no):super(Student, self).__init__(name,age)self.stu_no=stu_no#方法重写def chs(self):super(Student, self).chs()print("学号为:",self.stu_no)
class Teacher(Person):def __init__(self,name,age,teacherofyear):super(Teacher, self).__init__(name, age)self.teacherofyear=teacherofyear#方法重写def chs(self):super(Teacher, self).chs()print("教龄为:",self.teacherofyear)#     定义对象stu1=Student('张三',20,'2113042122')
tea1=Teacher('李四',45,10)
stu1.chs()
print('---------------------')
tea1.chs()
#输出:
#张三 20
#学号为: 2113042122
#----------------------
#李四 45
#教龄为: 10

本案例子类对父类方法(chs)进行重写,并重新对其进行定义。

注意:此时父类原先的定义将会被覆盖。

如果此时仍然想使用父类中的方法可以使用super().xxx()

class Person (object):#说明Person继承object类def __init__(self,name,age):self.name=nameself.age=agedef chs(self):#子类依然使用的父类方法print(self.name,self.age
class Student(Person):def __init__(self,name,age,stu_no):super(Student, self).__init__(name,age)self.stu_no=stu_no#方法重写def chs(self):#子类改写父类方法super(Student, self).chs()#子类使用父类方法print("学号为:",self.stu_no)
stu1=Student('张三',20,'2113042122')
stu1.chs()#对象调用方法

python面向对象中方法重写class Person (object):#说明Person继承object类 def __init__(self,name,age): sel相关推荐

  1. Python面向对象中反射和双下的正确用法

    一.反射 反射:程序可以访问,检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性 python中的一切事物都是对象(都可以使用反射) 四个可 ...

  2. Python面向对象中的“私有化”

    Python面向对象中的"私有化" Python并不直接支持私有方式,而要靠程序员自己把握在外部进行特性修改的时机. 为了让方法或者特性变为私有(从外部无法访问),只要在它的名字前 ...

  3. Python面向对象中:__init__() 构造方法

    什么是构造方法 在创建类时, 可手动添加一个 __init__()方法,称为构造方法,这是一个实例方法 构造方法用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它 ...

  4. Python面向对象中的self到底是什么?

    初次接触类的概念,在学习的网页上,对self的解释是self是方法的一个参数,在方法调用的时候,这个参数是默认传参数的 我们看一个例子 很多人学习python,不知道从何学起. 很多人学习python ...

  5. python面向对象课程大作业 定义一个描述学生基本情况的类,数据成员至少包括 “姓名、性别、学号、年级、所在院系、面向对象的考试日期”

    python面向对象课程大作业 按下列要求编写一个完整的程序: 定义一个描述学生基本情况的类,数据成员至少包括"姓名.性别.学号.年级.所在院系.面向对象的考试日期",成员函数至少 ...

  6. DYA9面向对象中--方法的重写

    方法重写/覆盖(override) 方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称.返回类型.参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法 方法重写注意事项和使用细节 1,子类 ...

  7. Python 面向对象(中)

    在python中面向对象的三大特征: 封装,继承,多态 1. 析构方法 程序结束后,之后调用析构方法,来释放空间 def __del__(self):print("析构方法") 2 ...

  8. Python面向对象中super用法与MRO机制

    1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维 ...

  9. Java中方法重写和方法重载的6个区别?

    文章合集:gitee.com/mydb/interv- 方法重写(Override)和方法重载(Overload)都是面向对象编程中,多态特性的不同体现,但二者本身并无关联,它们的区别犹如马德华之于刘 ...

最新文章

  1. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.4 深度图像成像原理...
  2. 【AWS】DynamoDB扫描操作获取表全部数据
  3. Android 4.4(KitKat)表格管理子系统 - 骨架
  4. python界面开发工具免费_Python程序员必备的四款开发工具
  5. RTMP协议从入门到放弃
  6. open a BP will trigger text load - COM_TEXT_MAINTAIN - READ_TEXT
  7. Svn服务器之必须提交更改日志篇
  8. poj 3261 Milk Patterns
  9. 118 Python程序中的线程操作-守护线程
  10. Matlab输出换行
  11. 电脑win10黑苹果双系统
  12. doapk java环境_关于有的Apk无法反编译的探究
  13. vue检测文本域字数变化
  14. 仅以此贴,献给兄弟们的《光辉岁月》
  15. 清华大学镜像站miniconda下载地址
  16. unity 导入gltf_GLTF相关资料
  17. linux 交换机实例,华为路由器和交换机实例配置
  18. 【x86架构】x86上的那些不明觉厉的功能
  19. Linux Ubuntu 命令行文件系统的创建,挂载,卸载
  20. 《Effective C++》 总结篇(模板与泛型编程)

热门文章

  1. 那一年,他还在为了今日的成就而奋力打拼
  2. No qualifying bean of type ‘org.apache.rocketmq.spring.core.RocketMQTemplate‘ av
  3. html画圆圈原理,Html - 圆圈border
  4. SDP(Software Defined Perimeters)核心技术点
  5. Python 密码生成及密码复杂度检测
  6. 提升C++程序运行速度的一些方法
  7. 计算机硬盘分几大类啊,事实:如何将计算机硬盘分为几个分区?
  8. 【鲁棒】对信息不完整的 DSGE 模型进行鲁棒预测(Matlab代码实现)
  9. 专家研究富士康跳楼现象:自杀者多为未婚男
  10. 【C++】c++ 11中的随机数 ——random