3.函数重写(override)

前提:必须有继承性

原因:

父类中的功能(函数),子类需要用,但是父类中函数的函数体内容和我现在要执行的逻辑还不相符

那么可以将函数名保留(功能还是此功能),但是将函数体重构;

注意:

子类重写父类的函数,除了函数体以外的部分,直接复制父类的即可

演示函数重写的使用以及格式:
class Fu:
def test(self):
print('九阳神功...') class Zi(Fu):
def test(self):
print('九阳神功...')
super().test()
print('乾坤大挪移...') #实例化子类对象
zi = Zi()
zi.test()

巩固函数重写的使用:

案例:描述新手机和旧手机之间的一些关系
#定义旧手机类
class OldPhone:
#打电话:
def call(self,name,msg):
print('正在给%s打电话,内容为:%s' % (name,msg)) #发短信:
def sendMSG(self,name,msg):
print('正在给%s发短信,内容为:%s' % (name,msg)) #定义新手机类
class NewPhone(OldPhone):
# 打电话:
def call(self, name, msg):
print('显示归属地和大头贴') # 发短信:
def sendMSG(self, name, msg):
super().sendMSG(name,msg)
print('正在发送表情包...') #实例化子类对象:
np=NewPhone()
np.call('苍老师','约吗?')
np.sendMSG('小泽老师','么么哒!!')

返回目录

python第四十六课——函数重写的更多相关文章

  1. NeHe OpenGL教程 第四十六课:全屏反走样

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  2. python第四十二课——__str__(self)函数

    4.__str__(self): 作用: 创建完对象,直接打印对象名/引用名我们得到的是对象的内存信息(十六进制的地址信息), 这串数据我们程序员并不关心,我们更希望看到的是属性赋值以后的内容(属性赋 ...

  3. python第四十八课——类函数和对象函数

    5.类函数和对象函数 类函数:在定义函数的上面一行书写@classmethod,特点:没有self 有cls 对象函数:定义在class中的普通的def函数 演示类函数和对象函数的定义使用: 总结: ...

  4. 第四十六课:MVC和MVVM的开发区别

    实现MVC的目的就是为了让M和V相分离.前端的MVC无法做到View和Model的相分离,而MVVM可以. 我们先来看一个用MVC模式开发的经典例子:(一定要深入了解这种开发的思想,而不是看懂代码) ...

  5. python第四十五课——继承性之多继承

    测试模块 演示多继承的结构和使用: 子类:Child 直接父类(多个):Father.Mother 注意: 由于有多个直接父类,多个父类都要自己给其属性赋值, 避免混淆,我们使用类名.__init__ ...

  6. python第四十五课——继承性之多重继承

    演示多重继承的结构和使用 子类:Dog 直接父类:Animal 间接父类:Creature #生物类 class Creature: def __init__(self,age): print('我是 ...

  7. python第三十六课——2.迭代器对象

    满足前提: 1).必须是一个可迭代对象 2).可以被next()所作用的 举例: generator... 高效的检测一个对象是否是迭代器对象 需要使用collections模块中的Iterator类 ...

  8. python第三十六课——1.可迭代对象

    1.可迭代对象: 满足前提: 只要能被循环操作的对象,就可以可迭代对象 举例: str.list.tuple.set.dict.range.generator... 高效的检测一个对象是否是可迭代对象 ...

  9. Python学习第二十六课——PyMySql(python 链接数据库)

    Python 链接数据库: 需要先安装pymysql 包 可以设置中安装,也可以pip install pymysql 安装 加载驱动: import pymysql # 需要先安装pymysql 包 ...

随机推荐

  1. jqgrid表头上面再加一行---二级表头

    实现效果如图,代码如下: $( "#table_list_1" ).jqGrid( 'setGroupHeaders' , { useColSpanStyle : true , / ...

  2. jenkins+Android+gradle持续集成

    本文Android自动化打包采用jenkins+gradle+upload to pyger的方式来实现,job执行完后只需要打开链接扫描二维码即可下载apk. 一.环境准备 1.下载Android ...

  3. java基础之继承(一)

    虽然说java中的面向对象的概念不多,但是具体的细节还是值得大家学习研究,java中的继承实际上就是子类拥有父类所有的内容(除私有信息外),并对其进行扩展.下面是我的笔记,主要包含以下一些内容点: 构 ...

  4. Bootstrap学习记录-2.container和table

    1. Container Bootstrap中容器类提供了2个类标识:container.container-fluid. 两者的区别在于: container:容器不止有15px的padding,还 ...

  5. hive 中date命令

  6. Maven远程仓库的各种配置

    1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他 ...

  7. linux下安装mysql环境

    1.在安装apache的时候已经检查了本地没有安装centos自带的mysql,有的话一定要卸载掉,否则可能占用端口 2.准备mysql安装包(注意编译的时候,mysql5.5版本以上的编译和5.5一 ...

  8. Csharp: read Sybase SQL anywhere5.5 using c#

    private void button1_Click(object sender, EventArgs e) { try { //OdbcConnection conn = new OdbcConne ...

  9. Python 3.4:Chromedrive,IEDriverServer,geckoDriver

    import sys; import time; import os; #from huoche import PythonTickt; from splinter.browser import Br ...

  10. loj#2002. 「SDOI2017」序列计数(dp 矩阵乘法)

    题意 题目链接 Sol 质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 - 没有质数的方案 那么直接dp,设\(f[i][j]\)表示到第i个位置,当前和为j的方案数 \(f[i ...