Решение не проходит валидацию по второму пункту (Метод equals должен возвращать true для двух равных объектов типа Iphone и false — для разных.) Никак не пойму в чем ошибка. По всякому тестировал. И второй вопрос. Мы переопределяем метод equals. То есть меняем правила его функционирования. Но при том в самом процессе переопределения применяем метод equals. То есть создаем новый метод и при этом в теле метода его же и используем. В голове не очень укладывается. Мы процессе создания молотка используем молоток. Не понятно!