Interface
Required behavior is defined by specifying the necessary operations
- of a class
- of a component
- of a package
Difference to abstract classes
- abstract class contains operations AND attributes
- abstract class can be realized by subclasses only, whereas an interface can be realized by means of arbitrary classes
Classes realizing a certain interface (supplier) can contain additional operations
Classes using an interface (clients) are not forced to use all available operations