An interface promises nothing about an action! The source of the confusion is that in most languages, if you have an interface type that defines a set of methods, the class that implements it "repeats" the same methods (but provides definition), so the interface looks like a skeleton or an outline of the class.
An interface is a good example of loose coupling (dynamic polymorphism/dynamic binding) An interface implements polymorphism and abstraction.It tells what to do but how to do is defined by the implementing class.
42 The interface keyword indicates that you are declaring a traditional interface class in Java. The @interface keyword is used to declare a new annotation type. See docs.oracle tutorial on annotations for a description of the syntax. See the JLS if you really want to get into the details of what @interface means.
If both interfaces have a method of exactly the same name and signature, the implementing class can implement both interface methods with a single concrete method. However, if the semantic contracts of the two interface method are contradicting, you've pretty much lost; you cannot implement both interfaces in a single class then.
An Interface is more of a high level architectural tool (which becomes clearer if you start to grasp design patterns) - an Abstract has a foot in both camps and can perform some of the dirty work too. Why use one over the other? The former allows for a more concrete definition of descendants - the latter allows for greater polymorphism.
But Interface is a contract which tells its implantations to provide if it is not an abstract class. And the One important difference between a class and interface is that class inheritance will give relation between two common subclasses. Where as Interface implementation gives a relation between two uncommon classes.
That having been said, an interface constraint on T should allow reference comparisons between T and any other reference type, since reference comparisons are allowed between any interface and almost any other reference type, and allowing comparisons even that case would pose no problem.
In Java to implement multiple inheritance we use interfaces. Is it the only use of interfaces? If yes, what is the main use of interface in Java? Why do we need interfaces in Java?
238 Implementing interfaces with abstract base classes is much simpler in modern Python 3 and they serve a purpose as an interface contract for plug-in extensions. Create the interface/abstract base class: