在编写类时,并不是每次都要从空白开始,当要编写的类和另一个存在的类之间存在一定的继承关系时,就可以通过继承来达到代码重构的目的,提高开发效率。
1.继承的基本语法
继承是面向对象编程最重要的特性之一,他源于人们认识客官世界的过程,是自然界普遍存在的一种现象。在程序设计中,实现继承,表示这个类拥有他继承的类的所有共有成员或者受保护成员,在面向对象编程中,被继承的类称为父类,新的类称为子类或者派生类。
通过继承不仅可以实现代码的重用,还可以通过继承来理顺与类之间的关系,在Python中,可以在类的定义语句中,类名右侧使用一对小括号将要继承的基类名称括起来,从而实现类的继承,具体的语法格式如下:
class ClassName(baseclasslist): '''类的帮助信息''' statement 参数说明: ClassName:用于指定类名 baseclasslist:用于指定要继承的基类,可以有多个,类名之间用逗号隔开,如果不指定,将使用所有Python对象的基类object。 '''类的帮助信息''':用于指定类的文档字符串,定义该字符串后,在创建类的对象时,输入类名和左侧的括号后,将显示该信息 statetmet:类体,主要由类变量,方法或者属性等定义语句组成,如果在定义类时,没想好类的具体功能,也可以在类体重直接使用pass语句代替。
class Fruit: color='绿色' def harvest(self,color): print("水果是:"+color+"的") print("水果已经收获") print("水果原来是:"+Fruit.color+"的") class Apple(Fruit): color="红色" def __init__(self): print("我是苹果") class Orange(Fruit): color="橙色" def __init__(self): print("我是橘子") apple=Apple() apple.harvest(apple.color) orange=Orange() orange.harvest(orange.color)
2.方法重写
基类的成员都会被派生类继承,当基类中的某个方法不完全适用于派生类时,就需要在派生类中重写父类的这个方法。
在上面的例子中,基类定义了harvest()方法,无论派生类时什么水果,都显示“水果。。。”,如果想要针对不同水果给出不同的提示,可以在派生类中重写harveset()方法。
class Orange(Fruit): color="橙色" def __init__(self): print("我是橘子") def harvest(self,color): print("橘子是:"+color+"的") print("水果已经收获") print("橘子原来是:"+Fruit.color+"的")
花絮:
本期的Python 面向对象就分享到这里,下期我们将继续分享Python面向对象的相关知识,感兴趣的朋友可以关注我。
同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。