Нужно как-то разграничить
Cat(String name, Cat mother) {
            this.name = name;
            this.mother = mother;

        }

Cat(String name, Cat father) {
            this.name = name;
            this.father = father;
        }
Но в такой вариации код дальше конструктора со второй переменной mother не будет доходить и будет выдавать ошибку