匿名对象

chunhan856 2007-10-31 06:38:26
class Base
{
String a = "Fred";
}

class AnonymousDemo
{
public static void main (String [] args)
{
new Base ()
{
String a = "Barney";

{
System.out.println (a);
System.out.println (super.a);
}
};//!!!!!
}
}
匿名对象是怎么调用的??(super.a);输出的是Fred为什么啊
这是java的什么机制啊,谢谢了
...全文
62 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dan1980 2007-10-31
  • 打赏
  • 举报
回复
匿名内部类!
new Base() {
String a = "Barney ";
{
System.out.println(a);
System.out.println(super.a);
}
};

等价于:

class Anonymous extends Base {
String a = "Barney ";
{
System.out.println(a);
System.out.println(super.a);
}
}
new Anonymous();

前者更简洁,但由于类是没有名字的,所以不能多次使用。
需要多次使用同一个内部类时用后者。

62,623

社区成员

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

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