Interfaces provide more complicated ways to organize and control the objects in your system. The interface keyword acquires the abstract concept one step further. You can think of it as a “pure” abstract class. An interface can also contain fields, but the interface keyword acquires the abstract concept one step more. You can think of it as a “pure” abstract class. It allows the creator to start the form for a class, method names, argument lists, and return types but no method bodies. An interface may also contain fields, but an interface says: This is the way all classes that implement this particular interface can look. Thus, any code that utilizes a particular interface knows which method would be called for that interface, and that’s all. So an interface is used to set up a “protocol” between classes.