Class这个英语单词的含义很多,可以是班级、阶级等等。不过在面向对象的程序设计中,这个单词的意思是种类,也就是我们说的类。接下来,我们会通过几个例子来说明类的含义。
首先,我们想一下交通工具。貌似交通工具有一个共同的特征:可以运动。但是,猫和狗也会动。看起来我们对交通工具的定义还不够具体,需要改进。我们再来定义一次:交通工具是人工发明的运输设备,通过人驾驶,在物理作用下能够运动。
如果这么说的话,那么猫和狗就交通工具了。但是如此定义交通工具过于宽泛,我们还需要具体一些。用面向对象程序设计的语言来说,就是要定义子类(Subclass)。同子类对应的就有父类,也叫做超级类(Superclass)。
和人类的遗传一样,子类可以继承父类的特征。父类和子类之间的结构有点像金字塔,父类处在顶端,子类处在下面。
再回到我们交通工具的例子。现在我们已经可以说出一个交通工具父类下面的子类了。比方说
我们还可以进一步给陆地交通工具定义子类。例如
当然,对于水中交通工具、空中交通工具、太空交通工具,也可以定义子类。这个读者可以自己思考一下。
我们再来看一个生物分类的例子。父类是动物,子类可以包括
同样,我们继续定义哺乳动物的子类。这就包括野生哺乳动物和家养哺乳动物。如果你还记得中学里学到的生物知识,就可以定义爬行动物、鸟类、鱼类和两栖动物的子类。