В чем разница, определяющая абстрактный или нет для интерфейсных методов? - PullRequest
3 голосов
/ 17 июля 2011

В чем разница между указанием ключевого слова abstract в методе интерфейса в Java и его отсутствием?

Как:

public void foo();
public abstract void foo();

Ответы [ 2 ]

11 голосов
/ 17 июля 2011

Разницы нет. См. Интерфейсы JLS - Склонения абстрактного метода :

Каждое объявление метода в теле интерфейса неявно абстрактно , поэтому его тело всегда представляется точкой с запятой, а не блоком.

Также обратите внимание:

Для совместимости со старыми версиями платформы Java разрешено, но не рекомендуется , из соображений стиля, избыточно указывать абстрактный модификатор для методов, объявленных в интерфейсах. 1018 *

0 голосов
/ 17 июля 2011

нет разницы, все методы в интерфейсах неявно абстрактны, потому что для реализации этого интерфейса все методы должны быть переопределены ... странно, что это работает, однако

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...