Please explain in an easy to understand language or a link to some article.
When a subclass extends a class, it allows the subclass to inherit (reuse) and override code defined in the supertype. When a class implements an interface, it allows an object created from the class to be used in any context that expects a value of the interface.
The real catch here is that while we are implementing anything it simply means we are using those methods as it is. There is no scope for change in their values and return types.
But when we are extending anything then it becomes an extension of your class. You can change it, use it, reuse use it and it does not necessarily need to return the same values as it does in superclass.