小学中高年级课后服务 python编程教学课件 三阶第11课 继承 课件 (29张PPT)

资源下载
  1. 二一教育资源

小学中高年级课后服务 python编程教学课件 三阶第11课 继承 课件 (29张PPT)

资源简介

(共29张PPT)
继承
课前回顾
1、属性默认值
每个类中的每个属性,都是必须有初始值的,哪怕这个值是0或空字符串(Null)。
2、修改属性值
我们可以使用三种不同的方式修改属性的值:
1、直接通过实例进行修改;2、通过方法进行设置;3、通过方法进行递增(增加特定的值)。
情境引入
继承是什么?提起 继承 这两个字,最先能够联想到的应该就是子继父业这个成语。还记得之前在我们的课程中提及过,在面向对象编程时,是可以依据生活中的思维方式来进行面向对象编程设计的,同样,在Python的世界里也存在像我们现实生活中的那样,也会有继承。
循序善诱
原来,在Python编程编写类时,并非总是要从空白开始。如果你接下来要编写的类是另一个已有、现成的类的特殊版本,这时候我们就可以使用类的继承,即一个新的类来继承另一个已有的类。在继承后,新的类将自动获得另一个类的所有属性和方法。
循序善诱
在这里我们称原有的类为父类,而新创建的这个类我们称为子类。子类除了可以继承父类的所有属性和方法之外,同时还可以拓展开发、创建定义自己的属性和方法,以适应不同的功能需求。
新知教授
2、定义子类属性与方法
1、子类的继承
3、重写父类的方法
4、课堂总结
子类的继承
新知教授
在我们创建子类的实例对象时,Python首先考虑的是给父类的所有属性赋值。为此,子类的方法__init__()需要父类来施以援手。
新知教授
电动汽车是汽车的发展延伸,电动汽车包含但不仅限于汽车所具有的功能特征与外观样式。这时,我们就可以认为电动汽车类继承了汽车类。
思维构建
我们可以在前面所创建的Car类的基础上,创建新的ElectricCar(电动汽车)类,用ElectricCar类继承Car类,这样我们就可以只需要描述电动汽车所特有的属性、行为程序代码。
思维构建
class ElectricCar(Car):
"""电动汽车的独特之处"""
def __init__(self, make, model, year):
"""初始化父类的属性"""
super().__init__(make, model, year)
my_electricCar = ElectricCar('特斯拉(Tesla)', 'model s', 2019)
print(my_electricCar.get_data())
编玩边学
super()方法函数是一个特殊方法函数,它帮助Python将父类和子类建立关联。让Python调用父类Car的__init__()方法来创建子类ElectricCar的__init__()方法,目的是让ElectricCar实例包含父类的所有属性。
定义子类属性与方法
新知教授
让一个类继承另一个类后,可添加、扩展与父类不同新的属性和方法。
思维构建
下面来添加一个电动汽车上特有的属性(比如:蓄电池),以及一个描述该属性的方法。
思维构建
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery_size = 70
def battery_describe(self):
print("电动汽车电池容量是:" + str(self.battery_size) + "-kWh。")
my_electricCar = ElectricCar('特斯拉(Tesla)', 'model s', 2020)
print(my_electricCar.get_data())
my_electricCar.battery_describe()
编玩边学
我们添加了新的电动汽车类特有的属性self. battery_size。根据ElectricCar类创建的所有实例对象都将包含battery_size这个属性信息,但所有Car实例对象都不包含它
编玩边学
我们还添加了一个名为battery_describe()的方法函数,battery_describe()方法功能是打印有关电池的信息。
思维构建
如果一个属性或者方法是任何汽车都有的,而不是电动汽车特有的,就应将这个属性或者方法加入到Car类。这样,继承使用Car类的子类将获得相应的功能,而ElectricCar类只包含处理电动汽车特有属性和行为的程序代码,做到分工明确、条理清晰。
重写父类的方法
新知教授
对于父类中的方法函数,只要它不符合子类所要描述、模拟的实物行为,我们都可以通过继承行为,在子类中对其继承的父类方法函数进行重新改写。
思维构建
可在子类中定义一个这样的方法,但它要跟重写的父类方法同名。这样的话,Python就不会考虑父类的方法,而只关注你在子类中定义的同名、新功能的方法。
思维构建
假设Car类有一个名为energy()的方法,energy()方法的功能是描述汽车行驶的能量之源,虽然普通汽车跟电动汽车一样都需要有描述它的能量之源的方法,两者所要描述的内容是不同的。对普通汽车来说是燃油,对全电动汽车来说是是蓄电池存储的电能。
编玩边学
class Car():
def energy(self):
print("传统汽车会使用汽油为燃料为汽车供能!")
class ElectricCar(Car):
def energy(self):
print("电动汽车会使用电能为汽车供能!")
如果有人对电动汽车调用energy()方法,Python将会忽略父类Car中的energy()方法,转而运行上述代码。
思维构建
现在,我们可以在使用继承时,让子类保留从父类那里继承而来的“精华”,并剔除那些不需要的“糟粕”。
实践创作
完成本节课的程序,使用继承将本节课的电动汽车类补充完整。
课堂总结
1、子类的继承
子类除了可以继承父类的所有属性和方法之外,同时还可以拓展开发、创建定义自己的属性和方法,以适应不同的功能需求。
2、定义子类属性与方法
让一个类继承另一个类后,可添加、扩展与父类不同新的属性和方法。
3、重写父类的方法
对于父类中的方法函数,只要它不符合子类所要描述、模拟的实物行为,我们都可以通过继承行为,在子类中对其继承的父类方法函数进行重新改写。
同学们,要加油哦!
下节课见啦
分享交流
同学们今天写代码有没有遇到什么问题?
演示今天打印的代码

展开更多......

收起↑

资源预览