Ответ 1
Добавление методов static
в интерфейсе в Java 8 имело 1 ограничение - эти методы не могут быть унаследованы классом, реализующим его. И это имеет смысл, поскольку класс может реализовывать несколько интерфейсов. И если 2 интерфейса имеют один и тот же метод static
, они оба наследуются, а компилятор не будет знать, какой из них вызывать.
Однако с расширением класса это не проблема. Методы класса static
наследуются подклассом.
См. JLS & sect; 8.4.8:
Класс C наследует от своего прямого суперкласса все конкретные методы m (как статические, так и экземпляры) суперкласса
...
Класс C наследует от своего прямого суперкласса и прямых суперинтерфейсов все абстрактные и дефолтные (§9.4) методы m
...
Класс не наследует статические методы из его суперинтерфейсов.