A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hjfeng1987 中级黑马   /  2014-7-30 17:58  /  1983 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hjfeng1987 于 2014-7-30 20:17 编辑

public class Iq {
        public static void main(String[] args) {
                new Zi().Test();
        }
}

class Fu{
}

class Zi extends Fu{
        public void Test(){
                   System.out.println(super.getClass().getName());
                }
}
程序输出的结果是多少呢

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

3 个回复

正序浏览
裤裆里的温柔、 发表于 2014-7-30 20:08
结果Zi, 在API当中的释义是返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchroni ...

{:3_47:}学习了!
回复 使用道具 举报
结果Zi, 在API当中的释义是返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。  
Zi作为直接继承Fu的类,作为Fu的儿子,在Zi中无论是this.getClass()还是super.getClass(),都指向了Object.getClass()。所以Object.getClass()返回不可能是Object.class,只能是Zi.class了。根据代码,new Zi()时,运行是类不可能是Test的父类,也不是父类的父类Object,只能是自己。
回复 使用道具 举报
Fu?              
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马