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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卜弦 中级黑马   /  2013-10-11 15:24  /  1420 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 卜弦 于 2013-10-11 16:26 编辑

各位战友我们都知道线程创建时无论继承Thread类还是实现Runnable接口,都需要覆盖run方法。但是run方法的权限一定是public,今天一不小心没有加public,我发现无论是那种创建方法编译时都会提示出错: Demo中的run()无法实现Runnable中的run()  正在尝试分配更低的访问权限;以前为public。
请问谁知道是为什么吗?run()一定要用public修是吗?还能用其他权限么?

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

3 个回复

倒序浏览
子类在重写父类或者实现接口中的方法时访问权限必须大于等于父类(接口)中的方法。接口中的方法全是public和abstract的,因此在实现接口中的方法时访问权限只能是public。Thread类也是实现了Runnable接口,原因相同。

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
刘渝灵 发表于 2013-10-11 15:51
子类在重写父类或者实现接口中的方法时访问权限必须大于等于父类(接口)中的方法。接口中的方法全是public和 ...

Thread和Runnable中的run方法的权限修饰好像只有void,没有加public吧
回复 使用道具 举报
刘渝灵 发表于 2013-10-11 15:51
子类在重写父类或者实现接口中的方法时访问权限必须大于等于父类(接口)中的方法。接口中的方法全是public和 ...

对  你说的是对的!刚才看错了!!!他们的确是public~  不好意思  谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马