В чем разница между указанием ключевого слова abstract в методе интерфейса в Java и его отсутствием?
abstract
Как:
public void foo(); public abstract void foo();
Разницы нет. См. Интерфейсы JLS - Склонения абстрактного метода :
Каждое объявление метода в теле интерфейса неявно абстрактно , поэтому его тело всегда представляется точкой с запятой, а не блоком.
Также обратите внимание:
Для совместимости со старыми версиями платформы Java разрешено, но не рекомендуется , из соображений стиля, избыточно указывать абстрактный модификатор для методов, объявленных в интерфейсах. 1018 *
нет разницы, все методы в интерфейсах неявно абстрактны, потому что для реализации этого интерфейса все методы должны быть переопределены ... странно, что это работает, однако