interface Inter {} class Super {} class Sub extends Super {} class ClassName { public static void displayClassName(Object o) { System.out.println(o.getClass()); } public static void main(String[] args) { // Verify dynamic type is obtained Super s = new Sub(); displayClassName(s); // Primitives have a Class object too Class c = int.class; System.out.println(c); // So do interfaces try { c = Class.forName("Inter"); System.out.println(c); } catch (ClassNotFoundException x) { System.out.println(x); } // As do arrays of a given type float[] arr = new float[4]; displayClassName(arr); Super[] arr2 = new Super[5]; displayClassName(arr2); } } /* Output: class Sub int interface Inter class [F class [LSuper; */ End of Listing