Classes are used to encapsulate variables and methods that logically belong together. Someone can use a class without understanding all of the details of the code inside it. For example, you probably use the Finch methods without understanding exactly how they work!
Interfaces take this one step further. An interface is a list of abstract methods that is essentially a contract. A class that implements the interface promises to provide each of the methods specified by the interface. For example, suppose that we want to standardize how software interacts with robots. We can create an interface named StandardRobot that outlines our requirements. To do this, we use the keyword interface and provide a specification for each method that a class must provide to implement this interface. This sample interface requires only two methods, straight25cm() and turnLeft90().