一、(10分)
答:当一个类有很多子类时,并且这些子类都重写了父类中的某个实例方法,那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象。
这个上转型对象在调用这个方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。
人们经常说:“哺乳动物有很多种叫声”,比如,“吼”、“嚎”、“汪汪”、“喵喵”等,这就是叫声的多态。比如,狗类的上转型对象调用“叫声”方法时产生的行为是“汪汪”,而猫类的上转型对象调用“叫声”方法时,产生的行为是“喵喵”,等等。
二、(10分)
答:UML的用户不能随意对UML进行任意形式的扩展。扩展机制为UML提供了扩充其表达内容的范围的能力,以描述各种新出现的事物,使人们能以受控的方式来扩展该语言。扩展机制分为三种类型:构造型(版型)、标记值和约束。
三、(10分)
答:相同点:都是一个用例(基本用例)的行为包含了另一个用例(包含用例或扩展用例),也就是说都是基本用例的行为的一部分。不同点:在基本用例的每一次执行时,包含用例都一定会执行,而扩展用例只是偶尔被执行。
四、(10分)
答:相同点:顺序图和协作图都属于交互模型,都用于描述系统中对象之间的动态关系,两者可以相互转换。不同点:两者强调的重点不同,顺序图强调的是消息的时间顺序,而协作图强调的是参与交互的对象的组织(即空间关系或结构关系);在两个图所使用的建模元素上,顺序图中有生命线和控制焦点,协作图中没有;协作图中有路径,顺序图中没有;协作图中的消息必须要有消息顺序号,但顺序图中可以有也可以没有。