Но возникает вопрос печему мой вариант не подходит?
package com.javarush.task.task06.task0614;
import java.util.ArrayList;
/*
Статические коты
*/
public class Cat {
//напишите тут ваш код
public static ArrayList<Cat> cats = new ArrayList<>();
public Cat() {
cats.add(this);
}
public static void main(String[] args) {
//напишите тут ваш код
for (int i = 0; i < 10; i++) new Cat();
printCats();
}
public static void printCats() {
//напишите тут ваш код
cats.forEach(System.out::println);
}
}
Тут скорее всего просто криво поставлено условие. Под "использовать конструктор" подразумевается использование конструкции new Cat(), которая создает новый объект и соответственно вызывает его default конструктор. Переопределять его не надо. Мне кажется это связано с тем, что при первом запуске программы также будет выполняться твой конструктор без параметров, и программа добавит текущий стартовый экземпляр в список, соответственно в итоге размер списка будет на один больше. Похоже на ошибку логики программы