黑马程序员技术交流社区
标题:
匿名内部类
[打印本页]
作者:
进击的蜗牛
时间:
2015-7-2 23:20
标题:
匿名内部类
abstract class AbsDemo
{
abstract void show();
}
class Outer
{
int x = 3;
public void function()
{
AbsDemo d = new AbsDemo() //匿名内部类
{
int num = 9;
void show()
{
System.out.println("num="+num);
}
void abc()
{
System.out.println("haha");
}
};
d.show();
//d.abc();//编译失败,因为多态。
}
}
怎么调用匿名内部类中的abc方法?必须继承类或者实现接口有才能实现吗?不应该的?求详细解释
作者:
双栖动物
时间:
2015-7-3 00:39
匿名调用 就是new xxx() {} .methodName(); 因为类没有名字 我想是 这样的
作者:
慕容旺财
时间:
2015-7-4 17:24
这样搞是不行的 建议如果你要调用abc方法 就不要用匿名内部类 老老实实使用普通内部类 继承 新建对象 调用来做 使用匿名内部类 就是为了简化书写 你这样搞 就让匿名内部类的使用失去了意义
作者:
Love丶cd
时间:
2015-7-6 15:47
感觉你的程序的编译就存在错误。首先,匿名内部类的实现要有前提:要实现一个接口或者继承一个类。首先AbsDemo d = new AbsDemo() ,抽象类是不能直接用new实例化的。而且就算是你的编译通过了,d是AbsDemo类的对象,而AbsDemo类中没有show()方法,自然调用失败。建议重新定义一个类让他继承AbsDemo类,应该就能解决了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2