Interfaces are important to java developers because they tend to implement a lot of them. This does not mean developers define many new interfaces, since few special interfaces are required in ordinary application development.
This chapter describes some ways to use (and not use) interfaces in your projects.
[interface.oop] Use interfaces to provide extensibility
[interface.name] Naming interfaces
[interface.impl] Naming interface implementations
[interface.most] Most classes don't implement interfaces
[interface.indirection] Too many inherited interfaces.