public static void main(String[] args) throws Exception {
      BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
      while (true) {
          String s = reader.readLine();

          if (s.equals(""))
              break;
          Cat cat =  CatFactory.getCatByKey(s);

          System.out.println(cat);
      }
вывожу на экран не правильно, да? Если вписать Василий, то должен быть результат Я - солидный кошак по имени Василий, а получается что он уличный кот...