京华大学计算机系大二年级大教室,一个老师正在给学生讲授《面向对象程序设计》的课程。
“对象具有以下的主要特特征:
一是唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
二是抽象性。抽象性是指将具有一致的数据结构(或者说是属性)和行为(或者说是操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
三是继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。
在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
多重继承,JAVA、VB、NET、Objective-C均仅支持单继承,注意在C++多重继承时,需小心二义性。
在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重用性。
采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
四是多态性(也可以表述为多形性)。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。
多态性增强了软件的灵活性和重用性。
……”
章岩和黄华山、李庆丰、贺俊明等人坐在一起上课,那低沉枯燥的声音令到他们都昏昏欲睡。
“这样照本宣科读教材,倒不如自己回宿舍看书、做练习或者上机编程。”后面那排座椅上有一位同学低声说。
周边立即响起一片附和、揶揄的声音。
“是啊,这样的讲课枯燥无味、催人睡眠。”
“这样的老师谁不会做?根本不用备课,我去讲都比他好。”