正在加载图片...
然而,要是我们费尽心机编写了一个类之后,又不得不再写去一个功能类 似的全新的类的话,那就很惨了。要是能将已有的类克隆一份,然后在克 隆的类上修修补补,那就好了。而这正是继承( inheritance)的功效。只 是区别在于,如果原先那个类(称为基类 base class,父类 parent cass和超类 superclass)作过了修改,那么这个“克隆”(称为衍生 类,派生类 derived class或者继承类 in herited class或者子类 subclass, child class)也会随之发生变化。 Base Derived (在UML关系图中,箭头从派生类指向基类。你会发现,通常会有不止 个派生类。) 类不仅仅在描述一组施加在对象之上的限制;它还会同其它类发生关系。 两个类可以有一些共通的特征和行为,可能其中有一个比另一个特征更 多,能处理的消息也更多(或者处理的方式不同)。通过基类和派生类的概 念,继承表达了这种相似性。基类保存的是所有继承自它的类的共有特征 和行为。创建基类是为了表达,你对系统中某些对象的核心思想的理解 而衍生类则是从基类派生出来的,它所表达的是各种实现这个核心思想的 方式。 举例来说,有一个对垃圾分类的垃圾回收机。基类是“垃圾( trash)”, 每件垃圾都有重量,价值等等,而且可以切碎,融化或者分解。由它派生 出的一些具体的垃圾品种会有一些额外的特征(瓶子有颜色)或是行为( 罐可以压缩,铁罐可以磁化)。此外有些行为会不同(纸张的价值由它的品 种和状况决定)。通过继承,你能用类构建一个表述你要解决的这个问题 的类系( type hierarchy)。 第二个例子是经典的“ shape”案例。或许它能用于计算机辅助设计系统 或是用来模拟游戏场景。基类是“ shape”,每种形状都有大小,颜色, 位置等属性。从它那里继承下来的具体的形状——圆,矩形,三角形等- —都有额外的特征和行为。比如某些形状可以翻转。有些行为会不同,比 如计算面积的方法。整个类系体现了各种形状之间的相同和不同点。 第9页共34页shhgs@wgqqh.com ￾ 9 ✁ ✂ 34 ✁ 9 ;à %Àrq3á«,3×/u üX‰XÁ«J3×ô;/ Á(cR(/(› YŠÂ,%;ôm(/ÃÄ3ú ;Fà Ä(/Jïïee Y‘,à (öK(inheritance)(ôØó  ¼F) ÄÅå/Y×/(ݙY/ base class Å/ parent class {/ superclass)1^,ïð YZ ×Í ÃÄÏ(ݙÆ0 / Ç0/ derived class |šöK/ inherited class |š/ subclass, child class)[º¸uì0áN (F U M L wË* ÈÉÇ0/ŒUY/¡ºìí ·ºmX+ 3×Ç0/) /XÇÇFé3-ÊäF¥VuJ(Èn Aº‡§A/ì0w e×/ÝEm3Ì:(µòE™ Ý;§*m3×8®3×µò V ;¢¢([V (|š¢¢(µ´X‡)^Y/Ç0/(Ö  öKGH, †>ÁY/ù(DmöKýA(/(:mµò E™ŸY/™,GH ¡¥w5*´Ì¥V(ËqD|(¢£ àÆ0/0Y/Ç0!Q( ADGH(چñí ×ËqD|( µ´ BâQ$ m3×¥ÌÍ/(ÌÍ~‹3Y/Í ÌÍ(tra sh )Ï êÅÌÍÆm‹ ¨Î-- àkÝEÏ ÐN|š£çAÇ0 !(3ÌAT(ÌÍ2†ºm3Ì;½(µò(эmÒÓ)|E™(Ô ÕÝEW ÖÕÝE×N)ò½mÌE™ºX‡(ØÙ(¨ÎçA(2 †ëNO )^öK ¡;ˆ/ڟ3×G¡%£N( ׇˆ (/w (typ e h i era rch y) ×âõ,(Í sh a p eÏOâ|ŽA;ˆ)123ۊ[1w5 |ˆQœîÜÝJdY/Í sh a p eÏ ê†ëÆmÂÞ ÒÓ ¿6-)AYËöKÆQ(AT(ëyyß à L-y yÆm;½(µòE™8Ä´ÌëÝE¿mÌE™ºX‡ 8 Ä12¶á(µ¤×/wTí,چëu4(>‡X‡C
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有