单选题
在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅电话和E-mail);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、E-mail、办公电话和职位)。
根据上述描述,得到了如图7-1所示的UML类图,其中类“客户”的属性有{{U}} {{U}} 34
{{/U}} {{/U}};类“人”的属性有{{U}} {{U}} 35 {{/U}} {{/U}}。
单选题
- A.客户标识
- B.姓名、住宅电话、E-mail
- C.姓名、住宅电话、办公电话、E-mail、职位
- D.客户标识、办公电话、职位
单选题
- A.客户标识
- B.姓名、住宅电话、E-mail
- C.姓名、住宅电户、办公电话、E-mail、职位
- D.客户标识、办公电话、职位
【正确答案】
B
【答案解析】[解析] 因为试题已经给出了有关类的描述。客户包括个人客户和集团客户,因此,“客户”类是“个人客户”类和“集团客户”类的超类,即“客户”类应该有的属性为“个人客户”类和“集团客户”类的公共属性,即客户标识、姓名、住宅电话和E-mail。但是,在备选答案中,“客户标识”和“姓名、住宅电话和E-mail”是分开的,因此,第(34)空的正确答案为A。即把“姓名、住宅电话和E-mail”既作为“个人客户”类的属性,也作为“集团客户”类的属性。
在本题中,“联系人”类是“人”类的子类,“个人客户”类与“人”类发生关联,而“集团客户”类与“联系人”类发生关联。因此,“人”的属性为应该包括“个人客户”类和“集团客户”类的公共属性,即“姓名、住宅电话和E-mail”。即第(35)空的正确答案为B。
单选题
根据图7-2所示的UML类图可知,类Car和类Boat中的move()方法{{U}} {{U}} {{/U}} {{/U}}。
【正确答案】
B
【答案解析】[解析] 在面向对象的语言中,可以定义一些不含方法体的方法,将其交给该类的子类根据自己的情况去实现。这样的方法叫抽象方法,包含抽象方法的类叫抽象类。
抽象方法用abstract修饰符来定义,任何带有抽象方法的类都必须声明为抽象类。抽象类不能被实例化,也就是不能用new关键字去产生对象。抽象方法只需声明,不需要实现。含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
在图7-2中,因为Transport类是一个抽象类,因此其子类Car和Boat的方法move()是对Transport类的方法move()的重置。