Development Class Java

// : c10:ToyTest.java
// Testing class Class.
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
interface HasBatteries {
}
interface Waterproof {
}
interface Shoots {
}
class Toy {
  // Comment out the following default constructor
  // to see NoSuchMethodError from (*1*)
  Toy() {
  }
  Toy(int i) {
  }
}
class FancyToy extends Toy implements HasBatteries, Waterproof, Shoots {
  FancyToy() {
    super(1);
  }
}
public class ToyTest {
  static void printInfo(Class cc) {
    System.out.println("Class name: " + cc.getName() + " is interface? ["
        + cc.isInterface() + "]");
  }
  public static void main(String[] args) {
    Class c = null;
    try {
      c = Class.forName("FancyToy");
    } catch (ClassNotFoundException e) {
      System.out.println("Can't find FancyToy");
      System.exit(1);
    }
    printInfo(c);
    Class[] faces = c.getInterfaces();
    for (int i = 0; i < faces.length; i++)
      printInfo(faces[i]);
    Class cy = c.getSuperclass();
    Object o = null;
    try {
      // Requires default constructor:
      o = cy.newInstance(); // (*1*)
    } catch (InstantiationException e) {
      System.out.println("Cannot instantiate");
      System.exit(1);
    } catch (IllegalAccessException e) {
      System.out.println("Cannot access");
      System.exit(1);
    }
    printInfo(o.getClass());
  }
} ///:~