Java interface | a class | an extreme example of a horizontal framework: There is no implementation, and all the specified methods represent slots that must be filled | any concrete methods or instance variables | like a class except that it does not have any executable statements - it only contains abstract methods and class variables | interface | 3.3 - Frameworks: Reusable Subsystems | public interface Drawable { public abstract Image drawImage(); public abstract Image drawImage(int height, int width); public abstract Image drawBlackAndWhiteImage(int height, int width); }
| the pieces of data that describe some entity, so that programmers can manipulate that data as a unit | a portion of the visible behaviour of a set of objects | the details of data | to specify a set of methods that a variety of different classes can implement polymorphically | the implements keyword in Java | generalizations | In Java, a software module containing a description of a set of operations that certain classes must implement | a programmer to cope with the complexity of data | many of the same benefits as multiple inheritance | a small circle (like a lollipop), labelled with the name of the interface or as a class rectangle, with the expression Ğinterfaceğ at the top, and (optionally) a list of supported operations in a UML diagram | a can-be-seen-as relation between the implementing class and the interface | superclasses containing only abstract methods in some languages | interface^3 |