java中 接口不是不能实例化吗,为什么匿名内部类中用new实例化了呢,比如下面代码

btn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){}})... btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { } }); 展开
 我来答
匿名用户
推荐于2017-11-28
展开全部
new ActionListener() 是创建一个继承自ActionListener的匿名类对象,通过new表达式返回的引用自动向上转型为对ActionListener的引用。因为匿名类本身无名,也就不存在构造方法,需要显式调用父类的构造方法,并重写父类的方法。
匿名用户
2013-08-10
展开全部
其实你也可以不用匿名的内部类来实力化接口,你还可以用接口名 接口变量名= new 接口名(){};大括号里面实现接口中的方法。这就是可以看成是用的上转型对象来实现这个接口的,要记住上转型对象能调用子类重写父类的方法,其实我们是在用匿名类来继承实现接口中的方法的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-10
展开全部
不是不能new ,只要实现了他的抽象方法就可以new interface A { public void add(int a ,int b ) ; }public class B { public static void main(String args[]){ B b = new B(){ --实现他的抽象方法就可以new public void add(int a ,int b){ System.out.println(a+b); } } ; } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式