What is Interface.super

If you use super in a class it usually refers to the ancestor of that class (either the extended class or Object).

In the case of overriden default method of an interface you have to specify the specific interface which default implementation you want to invoke, hence

<Interface>.super.<method>();

See also The diamond problem.


<Interface>.<method>(); would consider <method> as static, and this is not the case. Hence the use of key word super which is a reference variable that is used to refer a "parent" object.

Tags:

Java