弱弱问一个关于匿名类的问题

Zero_Strong 2009-11-11 12:21:13
我是一个JAVA的初学者,我记得在看书过程中书上有说过接口不能被实例化的。但是在匿名类这章节中
我明显看见一个类似实例化接口的代码(JAVA核心技术I中),想请教一下各位。

ActionListener listener= new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
....
}
}
...全文
54 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zero_Strong 2009-11-12
  • 打赏
  • 举报
回复
谢谢你啊,不过我刚来CS论坛,没有分,以后会注意加分的
hnetv_111 2009-11-11
  • 打赏
  • 举报
回复
接口实现匿名内部类
格式
new(接口名)()
{
.....
}
new 操作符后面的跟的是接口名,表面上是创建了接口对象。实际上是创建了 实现此接口的匿名的匿名内部类对象,
匿名内部类没有名称,无法被继承,因此必须实现接口中的所有方法


package ttgive;
interface MyInterface
{
public void show();
}
public class test
{
public static void main(String[] agrs)
{
//定义匿名内部类并且创建起对象
MyInterface a=new MyInterface()
{
//实现其父类的方法
public void show()
{
System.out.println("恭喜你创建了匿名类,该类实现了MyInterface接口");
}
};
//访问匿名内部类实现的 方法
a.show();
}

}

接口不是类,所以接口不能被使用new关键字来实例化
注意下面的是非法的
interface Flyer();
Flyer f=new Flyer();

但是可以实现接口类型的应用,当某个类实现接口后,该类的对象可以用起实现的借口,换句话说就是接口应用可以直接指向实现接口所有类的对象
Flyer f=new SeaPlane();
Sailer s=new SeaPlane();

还有 你让别人答题 竟然一分都没有 汗.......

62,620

社区成员

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

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