что неоднозначно?
Если два поля с одинаковым именем наследуются интерфейсом
потому что, например, два его прямых суперинтерфейса объявляют поля
с этим именем, то получается один неоднозначный член. Любое использование
этот неоднозначный член приведет к ошибке времени компиляции. Таким образом, в
Пример:
interface BaseColors {
int RED = 1, GREEN = 2, BLUE = 4;
}
interface RainbowColors extends BaseColors {
int YELLOW = 3, ORANGE = 5, INDIGO = 6, VIOLET = 7;
}
interface PrintColors extends BaseColors {
int YELLOW = 8, CYAN = 16, MAGENTA = 32;
}
interface LotsOfColors extends RainbowColors, PrintColors {
int FUCHSIA = 17, VERMILION = 43, CHARTREUSE = RED+90;
}
интерфейс LotsOfColors наследует два поля с именем ЖЕЛТЫЙ. Это
все в порядке, пока интерфейс не содержит ссылки на
простое имя в поле ЖЕЛТЫЙ. (Такая ссылка может произойти в
инициализатор переменной для поля.)
Даже если интерфейс PrintColors
должны были дать значение 3 ЖЕЛТЫЙ, а не значение 8, а
ссылка на поле YELLOW в интерфейсе LotsOfColors все равно будет
считается неоднозначным.