Python入门系列——第20篇

来源:互联网 发布:android端编程软件 编辑:程序博客网 时间:2024/06/06 20:13

继承

继承是面向对象的又一大特征,继承的好处是实现了代码的重用性。就在以前说过的一样,动物作为一个分类必然有其共性,否则我们是不会把他们分到一起的。继承就是将一些共性写在了“基类”之中(也叫父类或者超类)。当然了,动物有很多种,他们之间又有着不同的地方。比如羊和鱼就有不同之处,鱼儿能在水中生活,羊却不能。子类之间有着不同,就如同羊和鱼儿一样。子类从父类那里继了共性,就不需要再将共性写出来了。
class Animals:def __init__(self,a,b,name = "动物"):self.a = aself.b = bself.name = namedef Show(self):print("你好,我是%s,我的遗传物质是%s,我是%s生物."%(self.name,self.a,self.b))class Dogs(Animals):def __init__(self,a,b,name):Animals.__init__(self,a,b,name)def Show(self):Animals.Show(self)print("我有四条腿,跑的贼快,我爱吃骨头。\n")class Fishes(Animals):def __init__(self,a,b,name):Animals.__init__(self,a,b,name)def Show(self):Animals.Show(self)print("嗨,我只能在水里生活,但是我游的贼快,嘿嘿。")dog = Dogs("DNA","异养型","狗狗")fish = Fishes("DNA","异养型","鱼儿")dog.Show()fish.Show()
我们可以看到,Dogs类和Fishes类都继承自Animals类。然后我们构造了两个对象dog和fish。我们先来看一下输出。

输出的结果是不是在你的意料之内啊。好了,我们需要看一下继承的语法。
子类在继承父类的时候需要在类名后的参数列表里面跟上父类的名字,子类在调用父类的函数的时候使用父类名调用父类的函数。需要注意的是,在调用的时候,仍然要跟上self这个参数。就这么简单。
使用C++的同学需要注意,这个__init__()不是自动调用的,需要你手动在子类里去调用父类的。
好了,面向对象部分我们就说这么多了。下一篇,我来介绍一下异常,最后,我在介绍几个python的标准库,我们的这个系列就结束了,下次见。