You may be tempted to use interfaces as a place to put program contants. Usually a constant belongs to some abstraction. This abstraction should be represented by a class. Place the constant in that class. One interface can inherit from another interface.
Interfaces support multiple inheritance.
A class can implement multiple interfaces. This example uses the LockableDoor and Door interfaces from the last slide. Inheritance A class can implement multiple interfaces and extend one other class. This example uses the LockableDoor, Door and Alarm interfaces from the last two slides. If both foos have the same signature and different return types, then the class can not implement both interfaces If both foos have the same signature, same return type but differ in the types of exceptions they throw, then the class implements only the one foo, but it must contain the exceptions both foo's If a class implements two interfaces that each have a field with the same name, say bar, then the class has to use the full names for the fields.