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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王小刚 中级黑马   /  2012-3-26 10:25  /  1800 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class TestStart extends Thread
{       
        public void start()
        {
                for(int i=0;i<10;i++)
                {
                        System.out.println("i="+i);
                }
        }

        public static void main(String[] args)
        {
                TestStart test = new TestStart();
                test.start();
        }
}
问能不能编译通过,如果能,输出结果是?是不是多线程?如果不能,请说明理由。

7 个回复

倒序浏览
当然能,没什么问题。
结果
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
但是不是多线程 1 你没创建线程对象。因此没有启动线程。
2 你没有覆盖父类Thread中的run方法。
回复 使用道具 举报
这应该不能编译通过吧~!因为继承了Thread,但是却没有复写run方法,所以这不算多线程,把start方法换成run方法,就可以编译通过了.
回复 使用道具 举报
能通过编译,输出结果为:
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
这是一个多线程,它继承了Tread,是实现多线程的方式之一
回复 使用道具 举报
可以运行,输出结果为上面的for(int i=0;i<10;i++){System.out.println("i="+i);}输出。
不是多线程,start()被重写,没有启动新线程。run()方法内没有方法体。
回复 使用道具 举报
更正一下,这个能编译通过,但是没有run方法,所以不能算是多线程吧~!!
回复 使用道具 举报
能编译通过,运行结果就是2楼那个,但我认为不是多线程,你这个虽然继承了Thread类,但你没有复写它的run方法,更别说你都没有启动线程了。
回复 使用道具 举报
你这个方法使用的不是多线程,因为TestStart 类虽然继承了Thread类,但没有实现其run()方法。TestStart test = new TestStart();test.start();,不用启动一个线程,而是调用TestStart类中的start()方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马