A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© oi0l0io 初级黑马   /  2015-7-21 08:57  /  355 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果不打扰你的话,能否帮我看看...
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

4 个回复

倒序浏览
求关爱!
回复 使用道具 举报
求有爱!!
回复 使用道具 举报
应该是子类定义了一个public static void main(String[] args ){ }静态函数,
而getTime是一个非静态函数,静态函数不能出现非静态的成员,
你把主函数当成是一个普通的静态函数就好理解了。
回复 使用道具 举报
李峥 发表于 2015-7-21 11:51
应该是子类定义了一个public static void main(String[] args ){ }静态函数,
而getTime是一个非静态函数, ...

谢谢  后来我懂了~~   这是规则~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马