Запрос интерфейса Java - PullRequest
4 голосов
/ 15 августа 2010

Если мы выполним запустить следующий код, вывод будет 10.


interface X{
 int abc = 0;
}
interface XX extends X{
 int abc = 10;
}
class XTest implements XX
{
 public static void main(String[] args) 
 {
  System.out.println("Hello World! --> " +abc);
 }
}

Но согласно Java переменные интерфейса являются общедоступными static final.но как я получаю 10 в качестве вывода?

1 Ответ

5 голосов
/ 15 августа 2010

Этот код работает должным образом.

Ваш класс XTest реализует XX, поэтому он получает значение abc из открытого статического конечного экземпляра в этом интерфейсе.

XX shadows Xпоэтому он заменяет значение abc на X.

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