黑马程序员技术交流社区

标题: 能告诉我下面程序的输出结果是多少吗? [打印本页]

作者: 吐槽ing    时间: 2015-3-15 15:43
标题: 能告诉我下面程序的输出结果是多少吗?
import java.util.Date;

public  class Test extends Date{

    public static void main(String[] args) {

       new Test().test();

    }

   

    public void test(){

       System.out.println(super.getClass().getName());

    }

}
作者: 云行水边    时间: 2015-3-15 16:05
包名.Test
作者: 殷俊    时间: 2015-3-15 16:08
为什么要new Test().test(),test方法不就在本类中吗?请指教
作者: Pakumen    时间: 2015-3-16 00:35
本帖最后由 Pakumen 于 2015-3-16 00:41 编辑

首先,举个例子:
C c=new C();
c.getClass().getName()的意思是返回对象c所属类的名称,也就是C。

其次,你这个代码起码犯了两个错误
1.在主函数所在类中定义了非静态的方法。
2.在上述方法中调用了代表实例对象的super。

你可以从外部调用这个方法,但不要写在主函数所在类中。
如果是写在从外部的调用方法中并修改全部错误,结果是输出Test,原因已经在上述说明。
作者: 董志立    时间: 2015-3-16 09:46
输出结果为Test吧!




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