Abstract Data Type & Java Interface
After reading this chapter and engaging in the embedded activities and reflections, you should be able to:
- Criticize design decisions for a simple type hierarchy in Java made by employing the inheritance mechanism.
 - Recognize the usefulness of abstract classes and abstract methods to provide code reuse as well as a common interface among subtypes.
 - Identify the syntax of Java Abstract Classes and contrast it with Java Interfaces syntax.
 - Contrast the utility of abstract classes and interfaces.
 - Catalogue class relationships into is-a and has-a classes and separate is-a relationships into "extends" and "implements" types.
 - Distinguish between interfaces and implementations.
 - Define what an Abstract Data Type (ADT) is.
 - Declare an ADT using a Java interface, with complete Javadoc comments.
 - Understand the importance and the use of pre- and post-conditions for documenting a method's operation.
 - Write pre- and post-conditions for a given method definition.
 
Starter code for this chapter
Solution code
Solution code for this chapter.