UML中的继承关系

UML中的继承关系

ID:38696334

大小:53.00 KB

页数:6页

时间:2019-06-17

UML中的继承关系_第1页
UML中的继承关系_第2页
UML中的继承关系_第3页
UML中的继承关系_第4页
UML中的继承关系_第5页
资源描述:

《UML中的继承关系》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、我们引入了UML类图的概念,比较了在Java编程语言和UML类图中表示类、属性、操作和关联关系的不同之处。下面我们来看看如何在UML中表示两个重要的Java概念——继承,接口。  继承  在Java中,我们可以声明一个类扩展(extends)另一个类,还可以声明一个类实现(implements)一个或者多个接口。下面我们来看看如何在UML中表达这些概念。    下面是三个Java类的基本骨架。第一个类是代表某种支付方式的Payment抽象类,另外两个类分别扩展Payment类,描述两种不同的支付方式:    /**描述支付方式的抽象类*/  abstractpublicclassPayme

2、nt{   publicPayment(){}     publicPayment(BigDecimalamount){  this.amount=amount;   }     publicBigDecimalgetAmount(){  returnamount;   }     publicvoidsetAmount(BigDecimalamount){  this.amount=amount;   }     privateBigDecimalamount;  }    /**一个扩展了Payment类的子类,描述信用卡支付方式*/  publicclassCreditCardPay

3、mentextendsPayment{   publicCreditCardPayment(){   }     publicCreditCardPayment(BigDecimalamount){  super(amount);   }     publicStringgetCardNumber(){  returncardNumber;   }     publicvoidsetCardNumber(StringcardNumber){  this.cardNumber=cardNumber;   }     publicbooleanauthorize(){  returnfalse

4、;//暂不实现   }     privateStringcardNumber;  }    /**一个扩展了Payment类的子类,描述现金支付方式*/  publicclassCashPaymentextendsPayment{   publicCashPayment(){  super();   }     publicCashPayment(BigDecimalamount){  super(amount);   }     publicBigDecimalgetAmountTendered(){  returnamountTendered;   }     publicvoids

5、etAmountTendered(BigDecimalamountTendered){  this.amountTendered=amountTendered;   }     privateBigDecimalamountTendered;     publicBigDecimalcalcChange(){  returnamountTendered.suBTract(super.getAmount());   }  }  图一用UML显示了同样的三个类。在操作和属性声明中,类型和参数之类的细节都没有显示出来,这是为了更清楚地显示出类的整体结构以及各个类之间的关系。      图一:UM

6、L一般化关系  Java中的extends关键词声明了继承关系,相当于UML中的“一般化”(Generalization,也译为“泛化”)关系,在UML图形中用子类向超类的实线空心封闭箭头表示。图一额外增加了一个Sale类,这是为了更清楚地说明UML一般化关系与UML定向关联关系所用箭头的不同。关联关系与一般化关系的另一个不同之处在于,一般化关系的两端不需要说明多重性或角色名称。  显然,UML类图比三个Java源代码文件更清楚直观地显示出了三个类之间的继承关系。如果你要与别人探讨设计思路,绘制UML草图也要比直接使用代码简单快捷得多。    也许有人会说,系统的类结构图就在他们的头脑中,

7、他们只需要直接使用Java代码。实际上,对于规模较大的系统,这种说法显然是不成立的;即使对于规模较小的系统,如果一定的时间之后要由其他程序员修改,没有UML图也会寸步难行——很难保证每一个人都了解你头脑中的类结构图。    在UML中,抽象类的标志是类的名字以斜体显示。在白板或纸张上手工画UML草图时,很难区分字体是否是斜体。为此,一些人建议这些场合可以在类名称的右下角加上{abstract}标记以示区别。    另一些

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。