Python应用开发 课件 6.7 继承.pptx
python程序设计类和对象大数据技术BIGDATA
1.继承
继承继承这个概念在类拟于生物界中的遗传。后代具有先辈的特征和行为能力。在程序设计中继承是为代码复用和设计复用而设计的,是面向对象程序设计的重要特性之一。是指子类可以继承父类中已定义好的属性和方法(函数),而不需要重新定义,这样会大幅度减少开发工作量。在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称为子类或派生类。classAnimal:passclassCat(Animal):#表示该类继承类Animalpass
继承猫有:喵喵叫、吃、喝、拉、撒等行为;狗也有:汪汪叫、吃、喝、拉、撒等行为;如果我们要分别为猫和狗创建一个类,那么就需要为猫和狗分别实现他们所有的功能。为了提高效率,尽可能复用代码,我们可以把共同部分:吃、喝、拉、撒,抽象出来,定义一个猫和狗的父类。classCat(Animal):自动继续父类中的eat(),drink(),shit(),pee()方法,同时又有自己的cry()方法和属性name,breed。
classCat(Animal):def__init__(self,name):self.name=nameself.breed=猫defcry(self):print(喵喵叫)classDog(Animal):def__init__(self,name):self.name=nameself.breed=狗defcry(self):print(汪汪叫)继承classAnimal:defeat(self):print(%s吃%self.name)defdrink(self):print(%s喝%self.name)defshit(self):print(%s拉%self.name)defpee(self):print(%s撒%self.name)classCat(Animal):def__init__(self,name):self.name=nameself.breed=猫defcry(self):print(喵喵叫)classDog(Animal):def__init__(self,name):self.name=nameself.breed=狗defcry(self):print(汪汪叫)
classCat(Animal):def__init__(self,name):self.name=nameself.breed=猫defcry(self):print(喵喵叫)classDog(Animal):def__init__(self,name):self.name=nameself.breed=狗defcry(self):print(汪汪叫)继承方法重写,子类中同名的方法会敷盖父类中同名的方法。这时如果需要在派生类中调用基类的方法,可以使用内置函数super()或者通过“基类名.方法名()”的方式来实现这一目的。
classCat(Animal):def__init__(self,name):self.name=nameself.breed=猫defcry(self):print(喵喵叫)classDog(Animal):def__init__(self,name):self.name=nameself.breed=狗defcry(self):print(汪汪叫)继承子类Bar继承父类Foo,继承了方法f1和f2;b.f2()会在父类Foo中找到f2,先打印输出”父类中的方法f2”。接下来执行到self.f1(),即b.f1(),会按照:对象本身-类Bar-父类Foo的顺序依次查找。然后在子类中Bar中找到f1,输出“子类中的方法f1”。classFoo:deff1(self):print(父类中的方法f1