黑马程序员技术交流社区

标题: 请问如何用getClass()方法获取父类的类名 [打印本页]

作者: 何仕映    时间: 2013-3-18 10:21
标题: 请问如何用getClass()方法获取父类的类名
本帖最后由 何仕映 于 2013-3-18 12:45 编辑

怎么用getClass()获取下面这个程序父类的类名
  1. abstract class A
  2. {
  3.         int a = 1;
  4.         public abstract void printOut();
  5. }

  6. class B extends A
  7. {
  8.         int a = 2;
  9.         public void printOut()
  10.         {
  11.                 System.out.println(a);
  12.         }
  13. }
  14. class  DuoTaiDemo
  15. {
  16.         public static void main(String[] args)
  17.         {
  18.                 A b =new B();
  19.                 System.out.println(b.getClass());
  20.         }
  21. }
复制代码

作者: 何仕映    时间: 2013-3-18 10:40
各位大神指点一下嘛。
作者: Alex shaw    时间: 2013-3-18 10:52
你已经很接近了,只需要将最后一句改为 System.out.println(b.getClass().getSuperclass().getName());就可以了
getSuperclass就是获取该类的父类,获取到父类之后就可以通过getName获取父类名
作者: 何仕映    时间: 2013-3-18 11:09
肖路宽 发表于 2013-3-18 10:52
你已经很接近了,只需要将最后一句改为 System.out.println(b.getClass().getSuperclass().getName());就可 ...

谢谢,getSuperclass()这个方法在API文档里面没有啊?你在哪儿知道的啊?
作者: Alex shaw    时间: 2013-3-18 11:25
何仕映 发表于 2013-3-18 11:09
谢谢,getSuperclass()这个方法在API文档里面没有啊?你在哪儿知道的啊?

有的,你先考虑b.getClass()这个方法返回的是B.class,你可以理解为b.class是Class这个类的一个实例,Class这个类里面就有getSuperclass这个方法,在API搜索的时候,你可以搜class这个关键字就能找到了。如果还不明白可以查看张孝祥老师关于java加强的视频。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2