Но не проходит.. и прочитал комменты. Вопрос - почему не проходит? и еще вопрос: в переопределенном методе equals мы проверяем объект на принадлежность Solution через instanceof. Обязательно ли в таком случает приводить через Solution solution = (Solution) o? Ведь мы и так уже проверили что он Solution и если нет - вернули false.