Зачем добавлена такая конструкция:
public Cat(String name, int age, int weight, int strength) {
            this.name = name;
            this.age = age;
            this.weight = weight;
            this.strength = strength;
Ведь раньше уже были определены все параметры класса Cat:
public static class Cat {
       private String name;
       private int age;
       private int weight;
       private int strength;