Please explain in an easy to understand language or a link to some article.
Classes and Interfaces are both contracts. They provide methods and properties other parts of an application relies on.
You define an interface when you are not interested in the implementation details of this contract. The only thing to care about is that the contract (the interface) exists.
In this case you leave it up to the class which implements the interface to care about the details how the contract is fulfilled. Only classes can implement interfaces.
extends is used when you would like to replace details of an existing contract. This way you replace one way to fulfill a contract with a different way. Classes can extend other classes, and interfaces can extend other interfaces.