下面程序的输出结果是多少?

行业问题 结果,程序 已帮助 人

下面程序的输出结果是多少?

热搜:下面程序的功能是输出数组s中最大元素

答案解析

难度★★☆ 搜索
  • 正确答案:

    import java.util.Date;
    public class Test extends Date{
    /**
    * @param args add by zxx ,Dec 9, 2008
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    new Test().test();
    }
    public void test()
    {
    System.out.println(
    super.getClass().getName()
    );
    }
    }
    很奇怪,结果是Test
    这属于脑筋急转弯的题目,在一个qq 群有个网友正好问过这个问题,我觉得挺有趣,就研究了
    一下,没想到今天还被你面到了,哈哈。
    在 test 方法中,直接调用getClass().getName()方法,返回的是Test 类名
    由于getClass()在Object 类中定义成了final,子类不能覆盖该方法,所以,在
    test 方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()
    方法, 等效于调用super.getClass().getName() 方法, 所以,
    super.getClass().getName()方法返回的也应该是Test。
    如果想得到父类的名称,应该用如下代码:
    getClass().getSuperClass().getName();