这个小程序显示了一个给定对象的继承等级,采用了递归算法,可以显示对象继承的所有类和实现的所有接口。 //Hierarchy.java import java.util.*; import javax.swing.*; 
public class Hierarchy {   public static void showSuperClasses(Class c) {     Class superClass = c.getSuperclass();     if (superClass != null) {       prt(superClass.getName());       showSuperClasses(superClass);     }   } 
  public static void showSuperClasses(Object o) {     showSuperClasses(o.getClass());   } 
  public static void showInterfaces(Class c) {     Class[] interfaces = c.getInterfaces();     for (int i = 0; i < interfaces.length; i++) {       prt(interfaces[i].getName());       showInterfaces(interfaces[i]);     }   } 
  public static void showInterfaces(Object o) {     showInterfaces(o.getClass());   } 
  public static void showHierarchy(Class c) {     Class superClass = c.getSuperclass();     Class[] interfaces = c.getInterfaces(); 
    if (superClass != null) {       prt("extends: ");       prt(superClass.getName());       showHierarchy(superClass);     } 
    for (int i = 0; i < interfaces.length; i++) {       prt("implements:");       prt(interfaces[i].getName());       showHierarchy(interfaces[i]);     }   } 
  public static void showHierarchy(Object o) {     showHierarchy(o.getClass());   } 
  public static void prt(String s) {     System.out.println(s);   } 
  public static void main(String[] args) {     //showSuperClasses(new ArrayList());     //showInterfaces(new ArrayList());     showHierarchy(new Z1());   } } 
interface A1 {} 
interface A2     extends A1 {} 
interface B1 {} 
interface B2     extends B1 {} 
interface C1 {} 
interface C2     extends C1 {} 
class X1 implements A2{} class Y1 implements B2{} class Z1 extends X1 implements C2{}  
 
  |