It's a useful concept, especially in large systems. If any class implements a certain interface, you know for sure that that class implements all the methods in that interface. If it didn't implement the interface, you wouldn't know for sure. I suggest you check out Scala's 'trait' concept to get a good look at what interfaces should have been.