max()
method accepts two objects and returns the larger of the two based
on the result of Comparable.compareTo()
. Illustrate with code the
difference between implementing
Object max(Object a, Object b)
and
Object max(Comparable a, Comparable b)
Hint: in either case, max()
implementation has a one (possibly compound)
statement.
Given object parameters, max()
has to downcast them to Comparables and then
test:
Object max(Object a, Object b) if ((Comparable a).compareTo(b) < 1) return b; else return a;
Given Comparable parameters, no downcasting is needed:
Object max(Object a, Object b) return a.compareTo(b) < 1 ? b : a;
Interfaces, page 214 (7th ed.) or 244 (8th ed.).
Interfaces allow a form of multiple inheritance, while abstract classes do not (Interfaces and Abstract Classes, page 218 (7th ed.) or 249 (8th ed.)).
This page last modified on 31 March 2008. |
|