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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夕颜 中级黑马   /  2015-5-5 10:49  /  762 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老师讲课的时候说:设置线程名称的方法:构造函数或者setName(),我用setName()时提示:无法覆盖Thread中的setName(),被覆盖的方法为final。这个提示还不是说明不能用setName来设置线程的名称。如下是我的代码:

package ThreadTest;
class Thread1 extends Thread
{
        /*Thread1(String name)
        {
                super(name);
        }*/
        void setName(String name)
        {
                 this.name = name;
        }
        public void run()
        {
                for(int i=0;i<60;i++)
                {
                        System.out.println(Thread.currentThread().getName()+" run-----------"+i);
                }
               
        }
}
/*class Thread2 extends Thread
{
        public void run()
        {
                for(int i=0;i<60;i++)
                {
                        System.out.println(this.getName()+"我是第2个线程-----------"+i);
                }
        }
}*/
class ThreadTest
{
        public static void main(String[] args)
        {
                Thread1 t1 = new Thread1();//创建一个对象,即创建一个线程
                Thread1 t2 = new Thread1();
                t1.setName("one");
                t2.setName("two");
                t1.start();//开启并执行该线程的方法。如果为t1.run(),那只是简单的对象调用,线程创建了但是没有运行,该方法仍然在main方法中(主线程)
                t2.start();
                for(int i=0;i<60;i++)
                {
                        System.out.println("main run-----------"+i);
                }
        }
}

编译提示:
C:\Users\cecy\Desktop\javastudy\javacode\day11>javac -d . ThreadTest.java
ThreadTest.java:22: 错误: Thread1中的setName(String)无法覆盖Thread中的setName(St
ring)
        void setName(String name)
             ^
  被覆盖的方法为final
ThreadTest.java:24: 错误: name可以在Thread中访问private
                 this.name = name;
                     ^
ThreadTest.java:24: 错误: 不兼容的类型: String无法转换为char[]
                 this.name = name;
                             ^
3 个错误

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

2 个回复

倒序浏览
要public呀,不然权限太小,当然覆盖不了{:3_54:}
回复 使用道具 举报
殷俊 发表于 2015-5-5 12:43
要public呀,不然权限太小,当然覆盖不了

加了 还是提示被覆盖方法为final,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马