Этот вопрос очень похож на тот, который обсуждается Явный вызов метода по умолчанию в Java , но в коде Groovy (версия 2.4.16)
public interface Interface { // a Java interface
default void call() {}
}
public class Test implements Interface { // a Groovy class
@Override
public void call() {
Interface.super.call() // compile error: Groovy:The usage of 'Class.this' and 'Class.super' is only allowed in nested/inner classes.
}
}
С другой стороныметоды по умолчанию очень похожи на Trait в Groovy, и следующий код компилирует OK
public trait Trait { // a Groovy trait
void call() {}
}
public class Test implements Trait { // a Groovy class
@Override
public void call() {
Trait.super.call() // compiles OK
}
}
Итак, как явно вызвать метод по умолчанию в подклассе Groovy?