wood burning stoves 2.0*
The moose likes OO, Patterns, UML and Refactoring and the fly likes IBM question - Interface Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "IBM question - Interface" Watch "IBM question - Interface" New topic
Author

IBM question - Interface

Caroline Iux
Ranch Hand

Joined: May 14, 2001
Posts: 103
Here is the question:
Referring to the diagram in Figure Interface, which of the following are true? 2 correct answers(http://certify.torolab.ibm.com/figures/test486F13.gif )
a) Classes "X" and "Y" are subclasses of Mortgageable.
b) Instances of "X" and "Y" can be passed as parameters declared as type Mortgageable.
c) "X" and "Y" must implement a getAppraisedValue() method.
d) There are instances of Mortgageable in the production system.
My answer: a is wrong, b is right.
C, I'd like to say it's right, but "X" and "Y" could be abstract classes which means they don't have to implement the method.
D, might be right.
I guess I'm not sure if it's b,c or b,d.
Please help!


Peter den Haan
author
Ranch Hand

Joined: Apr 20, 2000
Posts: 3252
D, might be right.
Nope, it can't be right - you can't instantiate an interface. Which leaves B and C.
- Peter
Desai Sandeep
Ranch Hand

Joined: Apr 02, 2001
Posts: 1157
Hi,
I would lean towards B and C.
A is incorrect, as X and Y cannot be called the subclass of an interface.To be a subclass, it should satisfy "extends" relationship.This relationship is based on "implements".Note that dashed-line specialization indicates that "X" and "Y" are implementing the interface (Chapter 36, Section 36.3, Figure 36.4, Interfaces, Applying UML and Patterns, Craig Larman)
B is correct.We can draw an example from how Collection API is designed.You have java.util.List interface.The ArrayList implementation of this interface has methods/constructor which takes a Collection/List interface as a parameter.
C is correct.Note that "X" and "Y" can't be abstract classes.Abstract classes are indicated by italics in UML (Chapter 28, Section 28.6.1, Applying UML and Patterns, Craig Larman).Hence, "X" and "Y" must implement a getAppraisedValue() method.
D is incorrect.You can never get substantial evidence on the instances of Mortgageable (which means objects of "X" and "Y"!!) in the production system, from the UML artifact.
Hope this helps,
-- Sandeep
[This message has been edited by Desai Sandeep (edited May 16, 2001).]
Caroline Iux
Ranch Hand

Joined: May 14, 2001
Posts: 103
Originally posted by Desai Sandeep:

C is correct.Note that "X" and "Y" can't be abstract classes.Abstract classes are indicated by italics in UML

Absolutly true. Now I can see b,c is the right choice. Thanks!
 
Don't get me started about those stupid light bulbs.
 
subject: IBM question - Interface