定义匿名内部类的疑惑? new AbsDemo() {}这句话本身就表示定义一个匿名的继承自 AbsDemo 的内部类。花括号表示类的实现体,因为匿名,我们不可能像普通的使用 extends 来做,因为 extends 句法要求前面有个名字放着,这样它就不是匿名了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 匿名类中的“匿名”指的是省去创建对象时等号左边的部分。一旦你决定了使用匿名类,也就意味着这个new出来的对象基本上是一次性使用,在new的同时也就使用它,并且使用完毕后即抛弃。现在回答你的问题:1,确实不像,但是就可以这样写,具体可以百度(编译器自动生成一个完整的类);2, 匿名类很特殊,可以没有extends,直接new 抽象类 or 接口,后面跟上重写的方法,就在堆空间中直接生成具有新的方法的实例对象了,这时候使用“ . ”加具体方法就可以直接调用。3,在监听器环节有大量的匿名类的使用,学到那个部分应该你就茅塞顿开了。 首先纠正一下你的错误,new OutName().use();这句代码中的"OutName()"应该是前面的类"Outer()"才对啊。你定义的匿名类,顾名思义,就是看不见类的对象的名字,也就不会出现用extends语句,extends 用于继承类,=左边就是类名和类的对象名,这样就不叫匿名,因为可以看见类的对象的名字。类可以直接调用它的方法,new AbsDemo() { void show() { System.out.println("ABSin show"); } }.show();上面这段代码写成这样是等效的:AbsDemo abs=new AbsDemo();{ public void show() { System.out.println("ABSin show"); }}匿名类就这样,相信你应该懂了。 AbsDemo abs=new AbsDemo();//你这里是多态吗?{ public void show() { System.out.println("ABSin show"); }}.show();//这里的show方法是不是缺了? QQ聊天界面用Java语言去模拟需要用到的技术? 新手问个android方面的问题 一个比较让我头疼的问题 方法覆盖中的JAVA异常,我被难住了! 急~~急~大家快帮哈忙!谢谢 使用Blowfish的key不够长的问题 下面这个例子能正常运行,请看最下面.... :-) java新手提问:如何利用泛型实现一个一维数组操作类,可加入任意类型的数据。 很弱的问 java 对音乐的支持 新手学习JAVA核心技术时的一个小问题 java线程的静态变量共享问题
现在回答你的问题:
1,确实不像,但是就可以这样写,具体可以百度(编译器自动生成一个完整的类);
2, 匿名类很特殊,可以没有extends,直接new 抽象类 or 接口,后面跟上重写的方法,就在堆空间中直接生成具有新的方法的实例对象了,这时候使用“ . ”加具体方法就可以直接调用。
3,在监听器环节有大量的匿名类的使用,学到那个部分应该你就茅塞顿开了。
new AbsDemo()
{
void show()
{
System.out.println("ABSin show");
}
}.show();上面这段代码写成这样是等效的:
AbsDemo abs=new AbsDemo();
{
public void show()
{
System.out.println("ABSin show");
}
}匿名类就这样,相信你应该懂了。
{
public void show()
{
System.out.println("ABSin show");
}
}.show();//这里的show方法是不是缺了?