There is no code at all associated with an interface. You can mark them as such, but are discouraged from doing so as the marking is considered obsolete practice. The interfaces themselves need not be public and several interfaces in the standard libraries are not public and thus used only internally. An interface creates a protocol that classes may implement. One can actually extend several interfaces.
Interfaces thus enjoy the benefits of multiple inheritance.
These include efficiency considerations as well as the semantic difficulty of determining just what code will be executed in some circumstances. The Polynomial class that implements Comparable will need to implement all of the functions declared in the interface. A class may choose to implement any number of interfaces. A class that implements an interface must provide bodies for all methods of that interface. Also, I expect that an abstract class can choose to implement part of an interface leaving the rest for non-abstract subclasses.