One thing that an Interface can do for you is provide a standard method signature for a callback by the compiler. For example, let's say that some library you are using provides some type of data and provides this data via a call to a Printable Interface that the library tells you to implement on any class where you want to print out the data.
Since it will just be calling the print method of the class and providing the data it has no idea of the implementation you provide. You can print to a file, to a socket, to a screen, anywhere. The point is that the application library just calls the method of the class implementing the interface without regrad to the implementation.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus