Задачу я сделал и переопределении методов почитал, но там в примерах при переопределении сам метод всегда вызывался, а в этой задаче никакого явного вызова нет и как я понял в данном примере toString возвращает значение не printList, а в ячейку массива? Cat cat = new Cat(name,age,weight,tailLength); Solution.CATS.add(cat); } printList(); } public static void printList() { for (int i = 0; i < Solution.CATS.size(); i++) { System.out.println(Solution.CATS.get(i)); } } public static class Cat { private String name; private int age; private int weight; private int tailLength; Cat(String name, int age, int weight, int tailLength) { this.name = name; this.age = age; this.weight = weight; this.tailLength = tailLength; } @Override public String toString() { return "Cat's name: " + name + ", age: " + age + ", weight: " + weight + ", tail: " + tailLength; } } }