Я недавно играю в Java 8 новых функций и наблюдаю интересное поведение:
Это нормально:
Class A { static void staticMethodInA() {println();} }
Class B extends A {}
B.staticMethodInA();
Это вызовет ошибку: статический метод может быть вызван только при наличии класса интерфейса.
interface A { static void staticMethodInA() {println();} }
Class B implements A {}
B.staticMethodInA(); // from here IntelliJ complaints..
Может кто-нибудь сказать мне, почему разработчик Java 8 может по-разному рассматривать вышеприведенные два случая?