黑马程序员技术交流社区
标题:
关于线程问题
[打印本页]
作者:
芦子骐
时间:
2013-3-26 23:56
标题:
关于线程问题
本帖最后由 芦子骐 于 2013-3-27 00:44 编辑
今天我试着用一个类实现Runnable接口的run方法,然后在函数中这样使用,为什么找不到start方法???代码如下:
//主函数
class test
{
public static void main(String[] args)
{
//创建一个Runnable类型的引用变量r 指向一个out对象,这样不是可以么?
Runnable r = new out();
r.start();
}
}
// 创建一个out类实现Runnable接口
class out implements Runnable
{
public void run()
{
while(true)
{
System.out.println("out is run !!!!!!");
}
}
}
作者:
孙百鑫
时间:
2013-3-27 00:02
没有创建out对象吧
作者:
HM朱蛟
时间:
2013-3-27 00:21
我说下我的理解吧,有什么不对请指出。一起学习
首先要搞清楚 Runnable 是什么?为什么存在?
它是一个接口,他里面只有一个run(),所以你不能调用start()是正常的事情
为何存在?
Java只支持单继承。
假设Student继承Person若没有Runnable()接口,就无法创建多线程了(也就是说无法再继承Thread时,只能实现Runnable)。实现方式好处:避免了单继承的局限性。
然后我修改了下你的代码:
class test
{
public static void main(String[] args)
{
//创建一个Runnable类型的引用变量r 指向一个out对象,这样不是可以么?
Runnable r = new out();
Thread t = new Thread(r);
t.start();
}
}
// 创建一个out类实现Runnable接口
class out implements Runnable
{
public void run()
{
while(true)
{
System.out.println("out is run !!!!!!");
}
}
}
就是加了个
Thread t = new Thread(r);
t.start();
希望可以帮到你。
作者:
HM朱蛟
时间:
2013-3-27 00:24
孙百鑫 发表于 2013-3-27 00:02
没有创建out对象吧
他里头是多态创建的OUT对象
作者:
余善航
时间:
2013-3-27 01:03
start()是线程Therth类中的方法
run()是Runnable接口中的方法 好好看下视频 实现 接口,怎么运行线程的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2