Length 2 pages. We would rather speak ill of ourselves than not talk of ourselves at all.
Interfaces make software more maintainable.
If two classes share the same interface, you can substitute one for the other at runtime and don't have to recompile the application. As a result, your software becomes pluggable, and pluggability is one of the features we expect from components. Using the logging class as an example, you can create a new class that writes the log string to a database instead of to a flat file. You can include both classes with your application. Then, let the user select a configuration option to either use a file or use a database for logging application events.