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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 rick1991chen 于 2015-4-19 22:49 编辑

class Test extends Thread //自定线程子类
{
        private String name;//
        Test(String name)//构造函数传入名字
        {
                this.name = name;
        }
        public void run() //自定覆盖run方法
        {
                for (int x=0;x<60 ;x++ )
                {
                        System.out.println(this.getName()+"..run.."+x); // 将传入的名称用对象调用输出
                }
        }
}
class  ThreadTest
{
        public static void main(String[] args)
        {
                Test t1 = new Test("one"); //构造函数传入名字
                Test t2 = new Test("two");
                t1.start();
                t2.start();
               
                for (int x=0;x<60 ;x++ )
                {
                        System.out.println("");
                }
        }
}


thread.pic1.JPG (20.77 KB, 下载次数: 104)

thread.pic1.JPG

4 个回复

倒序浏览
本帖最后由 突然世界晴 于 2015-4-19 22:38 编辑

首先你的类中没有getName方法。
this.getName(),这个调用父类的方法,
你在构造函数传递的name没有作用的。
然后getName方法是父类final方法你不能重写
回复 使用道具 举报
突然世界晴 发表于 2015-4-19 22:36
首先你的类中没有getName方法。
this.getName(),这个调用父类的方法,
你在构造函数传递的name没有作用的 ...

嗯 突然想起来了,这个父类方法没有覆盖,传进的值没有用 :) 多谢
回复 使用道具 举报
你要么另外定义方法 ,不能覆盖。
要么
  1. class Test extends Thread //自定线程子类
  2. {
  3.       //   private String name;//
  4.          Test(String name)//构造函数传入名字
  5.         {
  6.                 //调用父类设置方法
  7.                  this.setName(name);
  8.          }
  9.          public void run()
  10.          {
  11.                  for (int x=0;x<60 ;x++ )
  12.                  {   
  13.                          //调用父类get方法获取Name
  14.                          System.out.println(this.getName()+"..run.."+x); // 将传入的名称用对象调用输出
  15.                 }
  16.          }
  17. }
复制代码
回复 使用道具 举报
突然世界晴 发表于 2015-4-19 22:41
你要么另外定义方法 ,不能覆盖。
要么

嗯嗯 对用set get,直接重写getName也是没用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马