在面向对象的程序设计中,类是一系列的对象,对象属于某一个类。对象是某一个类具体特征的化身。这个听起来简单。下面,我们还要具体介绍一下。
如前文所述,类分层级。这句话有两层含义。一方面,它表明某一个类对应的对象也同时属于超级类(或者父类)。另一方面,某一个属于父类的对象,却不属于子类。
例如,私家车属于轮式交通工具。而轮式交通工具却不一定是私家车。它也可能是卡车或者自行车。同样,宠物猫属于家养哺乳动物类。这就意味着宠物猫也属于动物。可见,每一个子类比父类更具体。或者反过来说,每一个父类比子类更宽泛。
这里有一点需要说明:我们目前的假设是某一个类只有一个父类。其实,某一个类可以有不止一个父类。我们在后面还会对此进行解释。
我们要重点介绍一下面向对象程序设计中的一个重要概念:继承。任何对象都属于某一个级别的类,并且从其父类中继承相关特征。对象所属的类可以定义新的特征。它的子类又会继承这些特征。这个规则对于交通工具的分类,动物的分类,以及我们面向对象程序设计的类都是相同的。
在面向对象程序设计中,每个对象都包括下面三个特征:
名称(Name):每个对象都要有一个名字。而且在其命名空间(namespace)内,这个名字要唯一。这和我们对人的称呼类似。假如你的同事中有一个人姓王,尽管他年轻,你也可以叫他老王。但是如果有两个人姓王,那就不能都叫老王了。解决办法是一个叫老王,一个叫小王。这就是所谓明明要唯一。
属性(Property):每个对象有一系列的特征。这些特征使其有别于其他对象。
行为(Activity):每个对象都会有一些行为。例如改变对象本身,或者改变别的对象。
这样讲可能还是比较抽象。有一个小窍门可以用来识别这三个特征。通过观察词的类别,可以判断对象的特征。一般来说,
如果是名词,那么就是对象的名称
如果是形容词,那么就是对象的属性
如果是动词,那么就是对象的行为
举例来说,如果我们看到“飞奔地红色汽车”这样一句话,那么就有下面的关系
名称:汽车
属性:颜色(红色)
行为:奔(而且是飞奔)
精彩评论