Подскажиеа для чего создаются m типа cat, почему нельзя тот же стринг создать
Cat(String name, Cat m, Cat f) {
this.name = name;
this.m = m;
this.f = f;