黑马程序员技术交流社区

标题: 请教 基础 [打印本页]

作者: oi0l0io    时间: 2015-7-21 08:57
标题: 请教 基础
如果不打扰你的话,能否帮我看看...
abstract class TestTime{
        abstract void runTime();
        public final void getTime(){
                long start = System.currentTimeMillis();
                runTime();
                long end = System.currentTimeMillis();
                System.out.println("运行时间:"+(end-start));
        }
         
}


class RunTimeDemo extends TestTime{
        public void  runTime(){
                for(int i = 0;i<1000;i++){
                        System.out.println(i);
                }
        }
        public static void main(String[] args ){
                getTime();
        }
}
我不明白的地方是,既然子类继承了父类,那么class RunTimeDemo extends TestTime{语句时,就会在子类中将父类的函数,方法继承过来,那么为什么在子类中直接用:
public static void main(String[] args ){
                getTime();
就是错误的呢,是说主函数是静态的,子类和父类都是非静态的,如果我没记错,子类已经加载到内存了啊,并且继承了父类..

QQ图片20150721085404.png (15.09 KB, 下载次数: 14)

QQ图片20150721085404.png

作者: oi0l0io    时间: 2015-7-21 09:06
求关爱!
作者: oi0l0io    时间: 2015-7-21 10:50
求有爱!!
作者: 李峥    时间: 2015-7-21 11:51
应该是子类定义了一个public static void main(String[] args ){ }静态函数,
而getTime是一个非静态函数,静态函数不能出现非静态的成员,
你把主函数当成是一个普通的静态函数就好理解了。
作者: oi0l0io    时间: 2015-7-21 16:10
李峥 发表于 2015-7-21 11:51
应该是子类定义了一个public static void main(String[] args ){ }静态函数,
而getTime是一个非静态函数, ...

谢谢  后来我懂了~~   这是规则~~




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