Скажем есть классы Кошка, Собака, Мышка и Мячик. Кошка может что-то ловить. Есть ли более изящный способ реализации того, что может поймать Кошка?
public class Test {

    public static void main(String[] args) {
        Cat tomCat = new Cat();
        Dog pitDog = new Dog();
        Mouse jerryMouse = new Mouse();
        tomCat.somethingCatches(pitDog, new  String[]{"LittleBall", "Mouse"});
        tomCat.somethingCatches(jerryMouse, new  String[]{"LittleBall", "Mouse"});
    }
}
//###
class Cat {
    void somethingCatches(Object anObj, String[] arrayLegalTypes) {
        for (String aLegType : arrayLegalTypes) {
            if (anObj.getClass().getSimpleName().equals(aLegType)) {
                System.out.println("Hurrah, I caught a " + aLegType);
                break;
            }
        }
    }
}
//###
class Mouse {}
//###
class Dog {}
//###
class LittleBall {}