What is Interface.super
If you use super
in a class
it usually refers to the ancestor of that class (either the extend
ed 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.