黑马程序员技术交流社区
标题:
实现Runnable接口问题
[打印本页]
作者:
zcbyzcb
时间:
2013-7-24 10:12
标题:
实现Runnable接口问题
本帖最后由 杨兴庭 于 2013-7-24 20:59 编辑
为什么自定线程类实现Runnable接口时,run方法中不能调用this对象,比如
class Thread2 implements Runnable
{
public void run()
{
int i=50;
while(i!=0)
{
System.out.println(Thread.currentThread().getName()+"---"+"方法二");
//System.out.println(this.getName()+"---"+"方法二");
i--;
}
}
}
复制代码
被注释的那一句编译是不能通过的,求解
作者:
薛淑凯
时间:
2013-7-24 10:35
实际上并不是不能调用this,而是getName方法是Thread类中的,没有继承就不能用了
作者:
liuzhming
时间:
2013-7-24 10:50
你写的这个类是实现了Runnable接口,而getName()方法是定义在Thread类中的,Runnable里面根本就没有这个方法。而且你在Thread2这个类中也没有定义一个getName()方法,编译器不知道这是什么方法。如果继承自Thread类,就可以这么做了,代码如下:
public class Thread2 extends Thread
{
public void run()
{
int i=50;
while(i!=0)
{
// System.out.println(Thread.currentThread().getName()+"---"+"方法二");
System.out.println(this.getName()+"---"+"方法二");
i--;
}
}
public static void main(String[] args)
{
Thread2 t = new Thread2();
t.start();
}
}
作者:
lljwdbklb
时间:
2013-7-24 11:20
如果你要用到getName()方法 你就继承Thread就行了。
Runnable是个接口,你说Runnable接口里面有实现getName()方法么。
作者:
zcbyzcb
时间:
2013-7-24 18:01
liuzhming 发表于 2013-7-24 10:50
你写的这个类是实现了Runnable接口,而getName()方法是定义在Thread类中的,Runnable里面根本就没有这个方 ...
奥,豁然开朗,明白了,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2