本帖最后由 zcbyzcb 于 2013-5-17 09:47 编辑
今天学习过程中把老师的计算程序运行时间时方法都加了static,发现没有像想象中那样的结果,代码如下:
class GetTime//父类
{
public static void getTime()
{
long start=System.currentTimeMillis();
runCode();
long end=System.currentTimeMillis();
System.out.println("\n毫秒数:"+(end-start));
}
public static void runCode()
{
for(int i=0; i<1000; i++)
{
System.out.print(i);
}
}
}
class MyTime extends GetTime
{
public static void runCode()
{
for(int i=0; i<4000; i++)
{
System.out.print(i);
}
}
}
class Demo
{
public static void main(String[] args)
{
//GetTime.getTime();
GetTime M=new MyTime();
M.getTime();
//MyTime.getTime();
}
}
子类中的runCode方法应该能覆盖父类中的方法呀,加了static,执行的是父类中的runCode,而不加static执行的是子类中的runCode,static方法应该可以被继承的,为何会出现这种结果? |