Подскажите пожалуйста как решить задачу через переопределение методов
package com.javarush.task.task12.task1225;

/*
Посетители
*/

public class Solution {
    public static void main(String[] args) {
        System.out.println(getObjectType(new Cat()));
        System.out.println(getObjectType(new Tiger()));
        System.out.println(getObjectType(new Lion()));
        System.out.println(getObjectType(new Bull()));
        System.out.println(getObjectType(new Cow()));
        System.out.println(getObjectType(new Animal()));
    }

    public static String getObjectType(Object o) {
        String m = "Животное";
        return m;
    }

    public static class Cat extends Animal   //<--Классы наследуются!!
    {
    }

    public static class Tiger extends Cat {
    }

    public static class Lion extends Cat {
    }

    public static class Bull extends Animal {
    }

    public static class Cow extends Animal {
    }

    public static class Animal {
    }
}
Я решил через исключение, что если ни один из классов то вывести Animal.
if (o instanceof Cat) m = "Кот";
        if (o instanceof Tiger) m = "Тигр";
       if (o instanceof Lion) m = "Лев";
        if (o instanceof Bull) m = "Бык";
        if (o instanceof Cow) m = "Корова";
        //if (o instanceof Animal) m = "Животное";