可以这样用吗 new Runnable() {} 为什么??

feixiangkuyu 2007-10-25 10:26:28
可以这样用吗 new Runnable() {} 为什么??
...全文
1767 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dan1980 2007-10-26
  • 打赏
  • 举报
回复
匿名内部类(Anonymous Inner Class),在创建实例的同时给出类的定义,所有这些在一个表达式中完成。

Runnable rn = new Runnable() {
public void run() {
}
};

相当于:

class Anomymous implements Runnable {
public void run() {
}
}
Runnable rn = new Anomymous();

可以看到前者更简洁。(注意前者最后的分号不能省略,编译器把整个看作一条语句)
不过,匿名内部类仅限于只实例化一次的内部类,如果内部类需要多次实例化,通常用后者。
另外,匿名内部类要么继承一个父类,要么实现一个接口,不能两者兼有,实现接口时也不能实现多个接口。关于该问题可以参考这贴:
http://topic.csdn.net/u/20071022/21/4f3097b7-e721-4313-8dc1-c11db3952eb5.html
feixiangkuyu 2007-10-25
  • 打赏
  • 举报
回复
为什么内部类就可以这样用呢???
  • 打赏
  • 举报
回复
可以这样用:
public void Test() {
Runnable rn = new Runnable() {
public void run() {
Sysout(...);
}
};
oracs 2007-10-25
  • 打赏
  • 举报
回复
内部类可以这样写

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧