编写类时,并非总是要从空白开始,如果你要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获取另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
1.子类的方法__init__()
创建子类的实例时,Python首先需要完成的任务是给父类所有属性赋值。为此,子类的__init()__需要父类伸出援手。
实现继承只需要在类的括号里添加父类;
例如:
图中super()是一个特殊函数,帮助Python将父类和子类关联起来,包含父类属性,父类被称为超类,所以用的是
super。
2.Python2.7中的继承
继承语法中super()有点不同。
语法格式:
super(子类类名,变量名(如self)).__init__(父类属性(如make,meodel,year等));
3.给子类定义属性和方法
让一个类继承另一个类后,可以添加区分子类和父类所需的新属性和方法。
例如:
结果:
4.重写父类方法
当子类需要父类的方法,而父类的方法又不能满足子类时,可以对父类的方法进行重写,重写时方法名相同,但是方法内部执行 的代码不一样,当调用方法是会执行重写之后的方法,之前父类的方法会被覆盖掉。
例如:
结果输出:
5.将实例用作属性
使用代码模拟实物时,你可能会发现自己给类添加的细节越来越多:属性和方法清单以及文件都越来越长。在这种情况下,可能需要将类的一部分作为一个独立的类提取出来。可以将大型的类拆分成多个协同工作的小类。
创建一个类作为另一个类的属性
例如:
将size类作为属性:
输出结果: