Вы правы - методы с одинаковым именем и одним и тем же классом объявления имеют, как документировано, один и тот же хэш-код. Что, я согласен, немного нелогично.
Код в Sun's JDK:
public int hashCode() {
return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
}
Но hashCode()
не является признаком равенства. Метод equals(..)
учитывает аргументы.