类是对有通用特征的事物的描述,有时需要的类并不是需要重新建立而是可以使用原有的类创建一个新的类别,可以使用原有类的属性和方法,再添加自己的特有属性和方法,这就是类的继承。原有的类称为父类,而新类称为子类。
以前边课程中狗的类为例,创建一个小狗的类,代码如下:
1、定义狗的父类:其中包含姓名、年龄属性;定义了给小狗改名的方法;定义了让小狗年龄在满足限制条件时递增的方法;
2、定义小狗的子类并通过特殊方法实现父类的继承;
3、创建子类的实例;
从代码和运行结果可知:
1、定义子类时,父类必须包含在当前文件中且必须在前面;不然出现要用的父类未被定义的错误;
2、子类中的__init__()方法接受创建父类时的所有信息,包括姓名、年龄。因为子类和父类有通用的属性;
3、super()是一个特殊的函数,通过该函数将父类和子类关联起来;
4、super(Little_dog,self).__init__(name,age)的意思是Python运行时,调用父类(Dog)中的__init__()的方法,让创建Little_dog的实例时包含父类的所有属性;让创建实例时的实参可以传递到父类形参中,达到继承的目的;
5、创建子类的实例时跟父类没有区别,赋予实参并赋给变量即可;
6、在Python2.7中,定义子类时,定义的父类括号中必须要包含object关键字;否则创建实例时会找不到相应的属性;
super方法中必须要包含子类名和对象self这俩实参;
7、定义的子类中还包含了dog_papa这一属性,且默认值为“dog father”,可见在子类中也可以给属性指定默认值。