пятница, 7 марта 2008 г.

Java Puzzle 74: Identity Class

Как определить класс Enigma, что бы следующая программа выдавала false? Переопределять метод equals нельзя!
public class Conundrum {
public static void main(String[] args) {
Enigma e = new Enigma();
System.out.println(e.equals(e));
}
}

А подсказка в том, что перегружать можно ;)
class Enigma {
public boolean equals(Enigma e) {
return false;
}
}

Если два перегруженных метода принимают разные параметры, то они должны иметь идентичное поведение! И ещё, эта головоломка была бы не возможна, если бы переменная e была бы типа Object:
    Object e = new Enigma();

Комментариев нет:

Отправить комментарий