上一篇讲了类的定义、类实例化、构造器、类方法、私有变量和私有属性,今天讲一下类的继承、多继承、方法重写。

继承

面向对象编程,如果类不支持继承,那这个语言的类就没多大意义了,所以python是支持继承的,继承就是一个类继承另一个类,这个类就继承了父类所有的方法和属性。继承类很简单,就是在定义类的时候,在括号里写上父类名称就行了,例如:

python 多重继承的init python多重继承例子_python 多重继承的init

上面的dog类继承了animal类。跟生活中一样,狗的父类就是动物,所以说一切皆对象。

动物需要吃东西,狗属于动物,所以狗也继承了吃东西这一特性,猫吃鱼,狗吃骨头,子类具体吃什么,还得子类说了算。

狗是动物,狗吃骨头,我们可以用python的继承来体现:

python 多重继承的init python多重继承例子_多继承_02

上面的dog就继承了父类animal的eat方法。所以我门在获得dog的实例后,就可以调用eat方法了,当然动物还有很多特征,比如睡觉,走路等,这里就单举吃饭这个例子,来看输出结果:

python 多重继承的init python多重继承例子_python 多重继承的init_03

多继承

多继承就是继承多个父类,可以这样理解,比如一只母鸡,它继承了父类动物,所以它要吃东西,然后又继承了雌性,所以它会下蛋。

我们也可以用代码来体现:

python 多重继承的init python多重继承例子_子类_04

上面的chicken就继承了动物要吃东西,又继承了母鸡会下蛋,这就是多继承。上面的的母鸡类我写成了muChicken。这种中英文混搭是不好的习惯,说多了都是泪,英语差只能写出这样不伦不类的单词。大家不要学习这个。

方法重写

当父类的方法不能满足子类的要求时,我们可以在子类中重写父类的方法。就是在子类中写一个和父类一样的方法。可以这样理解,动物有吃东西的特性,但动物只是有吃东西这个特性,世界上这么多动物,它们吃的食物不不同。比如狗吃骨头,我们就可以在狗身上来重写吃东西这个方法来告诉狗吃什么。

这个也可以用代码来体现:

python 多重继承的init python多重继承例子_python 多重继承的init_05

(python面向对象编程两篇完结)