Краткий ответ:
interface in {
default void show() {
System.out.println("Interface show");
}
}
будет выполняться тогда и только тогда, когда реализация класса не имеет реализации show()
(по умолчанию был введен только из Java 8 - до того, как методы, объявленные в интерфейсе, не могли иметьтело вообще).
class intercheck
реализовано в родительском классе inter
, поэтому ...
class inter {
public void show() {
System.out.println("Class Show");
}
}
выполняется.Вот и вся логика, стоящая за этим.