| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1451 人关注过本帖
标题:求教一个关于线程的问题
只看楼主 加入收藏
sl11l11l11l
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-7
结帖率:0
收藏
已结贴  问题点数:5 回复次数:11 
求教一个关于线程的问题
public class A  {
    public static void main(String[] arg){
        Runnable r = new Runnable(){
            public void run(){
                System.out.println("cat");
            }
        };
        Thread t = new Thread(r){
            public void run(){
                System.out.println("dog");
            }
        };
        t.start();
   }
}
希望前辈能够解释一下这道题的原理
感激不尽~~~
搜索更多相关主题的帖子: 线程 
2009-11-07 12:22
多多关照
Rank: 2
等 级:论坛游民
帖 子:42
专家分:51
注 册:2009-8-22
收藏
得分:0 
Runnable 是一个接口
r是实现接口的一个对象
Thread t = new Thread(r){
  public void run(){
     System.out.println("dog");
  }
};分配新的线程t,并重写run()方法
应该是这样,我也是前几天才学到线程这儿的,不知道解释的行不行
2009-11-07 13:29
sl11l11l11l
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-7
收藏
得分:0 
我想知道 这道题的答案为什么是 dog 而不是cat~~
2009-11-07 13:48
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
       Thread t = new Thread(r){
            public void run(){
                System.out.println("dog");  //重写了run()方法,删除这个方法就可以了显示cat了
            }
        };

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-11-07 15:08
windizual
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:124
专家分:186
注 册:2009-7-1
收藏
得分:0 
楼上的正解,楼主要注意方法覆盖的问题,最好不要用两个同名的自定义方法

Java要学的东西好多~~~~~
2009-11-08 02:16
xwlking
Rank: 4
来 自:湖南衡阳
等 级:业余侠客
威 望:1
帖 子:97
专家分:279
注 册:2009-11-1
收藏
得分:0 
public class A  {
    public static void main(String[] arg){
        Runnable r = new Runnable(){
            public void run(){
                System.out.println("cat");
            }
        };
        Thread t = new Thread(r);/*{
            public void run(){
                System.out.println("dog");
            }
        };*/
        t.start();
   }
}

人总需相信自己,人总需依靠自己. ---永远的Beyond---
2009-11-08 11:54
多多关照
Rank: 2
等 级:论坛游民
帖 子:42
专家分:51
注 册:2009-8-22
收藏
得分:0 
对,因为你重写了run()方法,覆盖了前面的run()方法,所以结果就是“dog”了
2009-11-08 19:18
erglpr
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2009-11-5
收藏
得分:0 
哦,知道了
2009-11-09 16:40
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:0 
public class A  {
    public static void main(String[] arg){
        Runnable r = new Runnable(){
            public void run(){
                System.out.println("cat");
            }
        };


        Thread t = new Thread(r){
            public void run(){
                System.out.println("dog");
            }
        };
这段代码可以用下面的内部类加上下面创建实例的语句来代替:
可以看看匿名内部来的传参的含义,也不错,哈哈
        Thread t = new A().new TestThread(r);
        t.start();
   }
Class TestThread extends Thread{
     public TestThread (Runnable r) {
        super(r);
     }
     public void run(){
      System.out.println("dog");
     }
}
}
2009-11-09 18:40
windizual
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:124
专家分:186
注 册:2009-7-1
收藏
得分:0 
楼主这是弃楼跑了啊???
汗一个,还辛苦这么多人给出了答案的说

Java要学的东西好多~~~~~
2009-11-10 01:22
快速回复:求教一个关于线程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034598 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved