黑马程序员技术交流社区
标题:
多线程问题
[打印本页]
作者:
莫运飞
时间:
2012-4-26 01:32
标题:
多线程问题
package ticket2;
class Thread {
public static void main(String[] args) {
Ticket t=new Ticket();
t.start();//为什么这里报错,说找不到t??????????
}
}
class Ticket extends Thread{
int x=100;
public void run() {//将run改成start程序又可以运行了。。。Thread不是要有run方法吗,怎么改成start也可以运行呢????
while(true){
if(x>0){
System.out.println( " ---> "+x--);
}
}
}
}
作者:
郑光
时间:
2012-4-26 01:47
第二行class Thread{}类的名字给改了
改成start就相当于直接调用这个start方法,和线程没关系了,就是一个普通方法
作者:
林德燚
时间:
2012-4-26 01:53
这是你把Thread类给重新写了,你定义的main函数的类名怎么可以叫Thread??
这样你下面的类基础你自己写的Thread,而你Thread类有没有start方法,怎么可以调用;
把类名改了就行;
作者:
光sail
时间:
2012-4-26 08:12
java类名不能是关键字和java已有的类名,你第一个类把java类中的Thread类重写了 ,而重写的类名有没有start()方法,
作者:
彭威
时间:
2012-4-26 08:42
首先 class Ticket extends Thread 你是想继承的Thread类,
不是你自己定义的那个主函数,先把主函数名改了。
而下面的Ticket类 里面没有复写 start()函数;
所以会出现这样
//将run改成start程序又可以运行了
作者:
王敏NO.09
时间:
2012-4-26 08:47
把Thread类的名称修改一下,否则就是普通的子父类继承关系,出现了上面的start方法名必须和run方法名一致的情况
作者:
金超
时间:
2012-4-29 13:20
你自己定义的class Thread与JAVA API中的Thread类重名了,class Ticket 继承的是你自己定义的Thread而不是JAVA API中的Thread,所以调用t. t.start();时就会报错,解决的办法是把你自己定义的Thread这个类该下名字。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2