黑马程序员技术交流社区

标题: 静态方法被复写后创建子类,调用时为何调用父类? [打印本页]

作者: cp0717    时间: 2016-4-4 13:51
标题: 静态方法被复写后创建子类,调用时为何调用父类?
//获取一段程序执行的时间
class GetTime
{
        public final static void getTime()
        {
                //获取程序开始时间
                long startTime = System.currentTimeMillis();
                //需执行的程序
                runcode();
                //获取程序结束时间
                long endTime  = System.currentTimeMillis();
                System.out.println("毫秒:"+(endTime-startTime));
        }
        //需要执行的程序
        static void runcode()
        {
                for (int i=0; i<1000; i++)
                {
                        System.out.print(i);
                }
        }
}
//定义子类继承GetTime,获取功能
class SubTime extends GetTime
{
        //覆盖父类的runcode方法
        static void runcode()
        {
                for (int i=0; i<4000; i++)
                {
                        System.out.print(i);
                }
        }
}
//创建子类对象,进行演示
class TemplateDemo
{
        public static void main(String[] args)
        {
               
                //创建子类对象
                SubTime s = new SubTime();
                //调用父类方法获取时间
                s.getTime();
        }
}
程序执行结果如下:
0123......993994995996997998999毫秒:289
作者: cp0717    时间: 2016-4-4 13:53
为什么子类复写了静态的runcode()方法,结果却是父类的runcode()执行呢?
求各位大神解答,谢谢!




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