黑马程序员技术交流社区
标题:
关于匿名内部类的问题
[打印本页]
作者:
阮金明
时间:
2011-11-16 18:19
标题:
关于匿名内部类的问题
匿名内部类 是否可以extends其它类,是否可以实现接口?
作者:
後天__牛永志
时间:
2011-11-16 18:28
应该可以吧
作者:
李高翔
时间:
2011-11-16 18:55
可以继承其他类或实现其他接口,在swing编程中常用此方式。
匿名内部类实际上已经extends了一个父类了,一个类只能extends一个父类,
例:private void test(){
//匿名内部类,OutClass实例
new OutClass(){
//override something
}
}
等价于:
class InnerClass extends OutClass{
//override something
}
OutClass oc = new InnerClass();
作者:
zhanghua
时间:
2011-11-16 19:11
匿名内部类本身已经继承了一个类,所以他不能在继续其他类了,但是可以实现接口
new OutClass(){
//override something
}
}
已经接承类了
class InnerClass extends OutClass{
//override something
}OutClass oc = new InnerClass();
所以不能继承类了,但可以实现接口
作者:
小王同志
时间:
2011-11-16 19:29
匿名的内部类是没有名字的内部类。
不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现...
作者:
SilenceSea
时间:
2011-11-16 19:39
匿名内部类必须继承一个父类,或实现一个接口,但是最多只能继承一个父类,或实现一个接口。
作者:
杨杰
时间:
2011-11-16 22:16
匿名内部类可以继承或实现一类或方法,用法为:
JButton btn = new JButton("click");
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){//some mothod...}
});
内部类除了实现一个接口也可以继承一个类,语法都是同上述的"new ActionListener()",你也可以去继承一个适配器类。
作者:
王新春
时间:
2011-11-16 22:58
匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。
IA被定义为接口。
IA I=new IA(){};
注:一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们使用其父类名。
因其为局部内部类,那么局部内部类的所有限制都对其生效。
匿名内部类是唯一一种无构造方法类。
匿名内部类在编译的时候由系统自动起名Out$1.class。
如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。
因匿名内部类无构造方法,所以其使用范围非常的有限。
作者:
任俊杰
时间:
2011-11-16 23:05
当然可以,匿名内部类和其它类是一样的,只是放的位置不一样,和没有可直接看见的类名
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2