资源简介 (共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 = 70def 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、重写父类的方法对于父类中的方法函数,只要它不符合子类所要描述、模拟的实物行为,我们都可以通过继承行为,在子类中对其继承的父类方法函数进行重新改写。同学们,要加油哦!下节课见啦分享交流同学们今天写代码有没有遇到什么问题?演示今天打印的代码 展开更多...... 收起↑ 资源预览