Решение приложить не могу, но вопрос в другом. Зачем в классе 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));