对象和对象间不但有互相交换消息的操作,而且对象间也有关系,就像人跟人一样,有的人形同陌路,有的人却亲如父子。
我们自然没有太多的时间去研究陌生人,但起码我们可以了解像亲如父子的关系,比如说:继承(inheritance)
在研究继承之前,我们先要了解一些概念
关联(Association)与链接(Link)
关联说白了就是两者关系的描述。
学生选课
教授讲课
但是跟“类”的定义类似,这种表象关系是大范围的,不具体到个别的。
但是链接就是具体到个别的,也可以说是关联的实例。
张三选修PHP
李四选修ASP.NET
诸如此
结对关系(Multiplicity)
简单的说就是描述关联的数目:一对一,一对多,多对多
不过,关联可以根据结对关系而改变数目,链接只可能是两个对象间存在。
聚合(Aggregation)
一种特殊的关联,从描述的语句中经常出现“包括”“由……构成”或“有……”
下面是重点:继承
比如我们写一个Student类
写完后,我们要再加一个研究生类,但是GraduateStudent类其他的跟Student一样,只是多加了个本科学位以及本科学校两个attribute以及对应的property。
那么问题来了,我们写这个GraduateStudent类的时候怎么写呢?Ctrl+C(V)原来的Student类??太麻烦,而且要改起来的话,又会连锁反应。
直接继承
覆载和多载
覆载就是override 用以替代基类中的虚方法
多载也叫重载,就是同样的方法名但是参数签名不同,所以调用方法的时候可以根据不同的参数形式来让程序自动选择适合的方法。
下面将学到群集。