Решение приложить не могу, но вопрос в другом. Зачем в классе Cat нужен вот этот код:
public Cat() {
    }
Я его удалил и ничего не изменилось. Он меня сильно сбивал с толку, когда я пытался понять код. Вот это у меня в main:
Cat first = new Cat();
first.age = 10;
first.weight= 10;
first.strength= 10;

Cat second = new Cat();
second.age = 5;
second.weight= 10;
second.strength= 5;

System.out.println(first.fight(second));
System.out.println(second.fight(first));