Exception in thread "main" java.lang.NullPointerException at com.javarush.task.task06.task0614.Cat.main(Cat.java:20) Никак не могу понять в чем проблема, ведь ссылка на объект не теряется, она остается в списке! Объясните, пожалуйста, как это работает
public class Cat {
    //напишите тут ваш код
    public static ArrayList<Cat> cats; //объявляем список для объектов Cat

    public Cat() { //ЗАЧЕМ ОН ТУТ???
    }

    public static void main(String[] args) {
        //напишите тут ваш код
        for (int i=0; i<10;i++){
            Cat cat = new Cat(); //создаем кота
            cats.add(cat); //копируем в список ссылку на кота перед тем как перезаписать его
        }
        printCats();
    }

    public static void printCats() {
        //напишите тут ваш код
        for (int i=0;i<cats.size();i++){
            System.out.println(cats.get(i).toString()); //выводим ссылку на кота
        }
    }
}
Заранее благодарю!