Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
显示一个对象的继承等级,Class类的应用

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

这个小程序显示了一个给定对象的继承等级,采用了递归算法,可以显示对象继承的所有类和实现的所有接口。
//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{}




相关文章

相关软件