一道匿名内部类的题,等高手解答,急急!!!!!在线等(147之142)

wfh_178 2003-05-08 02:24:49
142. Which two statements are true? (Choose Two)
A.An anonymous inner class can be declared inside of a method.
B.An anonymous inner class constructor can take arguments in some situation.
C.An anonymous inner class that is a direct subclass that is a direct subclass of Object can implement multiple interfaces .
D.Even if a class Super does not implement any interfaces, it is still possible to define an anonymous inner class that is an immediate subclass of Super that implements a single interface.
E.Event if a class Super does not implement any interfaces, it is still possible to define an anonymous inner class that is an immediate subclass of Super that implements multiple interfaces.

有说选AD, 有说选AB,到底选什么,对错在哪里?
...全文
129 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
somejava 2003-06-12
  • 打赏
  • 举报
回复
匿名类不具有构造器,但它可以调用父类的构造器,所以B是对的
guohuidan10000 2003-06-12
  • 打赏
  • 举报
回复
这道题,答案不明确,没关系,弃了!就一道,不会影响太大的!
ThENiGhT 2003-06-11
  • 打赏
  • 举报
回复
哪位把题目翻译给我看哈~~
小弟弟多谢~~
「已注销」 2003-05-16
  • 打赏
  • 举报
回复
标准答案是AB
井中老男孩 2003-05-16
  • 打赏
  • 举报
回复
一个匿名类是可以有带参数的构造函数的,我们虽然没有显示的声明,但编译器给声明了,
这个构造函数其实什么也不做,只是调用父类的相同参数的构造函数

这下岂不是选择了三个答案:ABD

是这到题有问题,还是我们有问题
井中老男孩 2003-05-16
  • 打赏
  • 举报
回复
ActionListener a=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

}
};
对象a继承于object,而且实现了ActionListener接口,这是个匿名内部类。
所以,一个类没有实现任何接口,而他的子类(匿名类)实现了一个接口,这种情况是可能的
井中老男孩 2003-05-16
  • 打赏
  • 举报
回复
任何实现了一个接口的匿名类都是继承于object,而object没有实现任何接口
所以
anonymous inner class要么是extends一个类,要么就是implements一个接口。不能同时实现多个接口.
根本就是错误的


ajiao 2003-05-08
  • 打赏
  • 举报
回复
关于c:
该匿名inner class实现了Object个接口,因此它本身不可能再实现其他的接口。
至于有没有可能出现你说的那种“如果一个匿名类继承的父类实现了多个接口,那么匿名类
不也实现多个接口了”
Object接口本身是所有类的父节点,因此不存在着Object实现多个接口的可能性
事实上java文档里关于Object定义也只是 public interface Object
wfh_178 2003-05-08
  • 打赏
  • 举报
回复
how about C?
leejidongdong 2003-05-08
  • 打赏
  • 举报
回复
AB
ajiao 2003-05-08
  • 打赏
  • 举报
回复
“可是, 如果一个匿名类继承的父类实现了多个接口,那么匿名类不也实现多个接口了吗?”
你说得没错,可是选项E的意思是这个父类本身没有实现任何接口,而这个匿名的inner class
继承自这个父类,然后他再实现其他的多个接口,这个就是错误的。
ajiao 2003-05-08
  • 打赏
  • 举报
回复
这两本书说得并不矛盾,你注意看thinking 375页他举的那个例子,他是如何进行实例变量的初始化的。要是是普通的类,你完全可以把这些初始化的过程放在该类的构造式里头,可是由于它是匿名类,没法显示的申明构造函数,他用一对{...}来实现初始化。

因此你说的那句话,正确的理解应该是 “通过实例变量的初始化(就是指书下面的这个例子),实际上你可以达到一个匿名inner class的构造函数的效果”。参见该书374“...anoymous class cannot have a constructor ...”




wfh_178 2003-05-08
  • 打赏
  • 举报
回复
可是, 如果一个匿名类继承的父类实现了多个接口,那么匿名类不也实现多个接口了吗?
还有,在<Thinking in Java>里375页:
With instance initialization, you can , in effect , create a constructor for an anonymous inner class:....
这里也有匿名类佛的构造函数的提法...
在James Gosling 的<The Java Programming Language>9中(131页):
Anonymous inner classes annnot have explict constructor declared because they have no name to give the constructor.....
这里说不能显式声明构造函数....

到底该选什么啊?
ajiao 2003-05-08
  • 打赏
  • 举报
回复
anonymous inner class要么是extends一个类,要么就是implements一个接口。不能同时
实现多个接口.
ajiao 2003-05-08
  • 打赏
  • 举报
回复
B是错的,anonymous inner class不能拥有构造函数,更何况是带有引数的构造函数

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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