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

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

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

热搜:下面程序的功能是输出数组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();