Abstract Classes and Methods
An operation should be declared to exist at the highest class in the hierarchy where it makes sense
- The operation may be abstract (lacking implementation) at that level
- If so, the class also must be abstract
- No instances can be created
- The opposite of an abstract class is a concrete class
- If a superclass has an abstract operation then its subclasses at some level must have a concrete method for the operation
- Leaf classes must have or inherit concrete methods for all operations
- Leaf classes must be concrete