黑马程序员技术交流社区

标题: 关于匿名内部类的一个小问题,求答案,求高手。 [打印本页]

作者: 乔青山    时间: 2014-2-13 23:05
标题: 关于匿名内部类的一个小问题,求答案,求高手。
本帖最后由 乔青山 于 2014-2-14 12:50 编辑

class Boo{
Boo(String s){}
Boo(){}
}
class Bar extends Boo{
Bar(){}
Bar(String s){super(s);}
void zoo(){
//insert code here
}
}
which create an anonymous inner class from within class Bar?(choose all that apply)
A. Boo f = new Boo("24"){};
B. Boo f = new Bar(){};
C. Boo f = new Boo(){String s;};
D. Bar f = new Boo(String s){};
E. Boo f = new Boo.Bar(String s){};刚才查百度匿名内部类的时候看到百度知道上的一个问题,看完之后 个人感觉是A,C,但是看到知道上回答的是B,C,问问题的人也没回正确答案,所以拿过来问一下,去高手来解答。。。好吧,想了想之后又感觉A,B,C都对。。

作者: 糖伯貓    时间: 2014-2-13 23:12
个人第六感也是ac
作者: @翱翔@    时间: 2014-2-13 23:20
因为Boo类中只有无参构造,并且Boo类是父类,所以B对A不对。
作者: 乔青山    时间: 2014-2-14 08:36
@翱翔@ 发表于 2014-2-13 23:20
因为Boo类中只有无参构造,并且Boo类是父类,所以B对A不对。

Boo(String s){}
这个不就是Boo类中的有参构造器么。
作者: 眷恋之地    时间: 2014-2-14 09:19
本帖最后由 眷恋之地 于 2014-2-14 09:22 编辑

定义匿名内部类的前提:内部类必须继承一个类或者实现接口。
匿名内部类的格式:new 父类或者接口(){定义子类的内容}
根据这两个,个人感觉是c。等待高手解答!
作者: 乔青山    时间: 2014-2-14 09:28
眷恋之地 发表于 2014-2-14 09:19
定义匿名内部类的前提:内部类必须继承一个类或者实现接口。
匿名内部类的格式:new 父类或者接口(){定义子 ...

A选项是不是相当于匿名了一个Boo类的子类




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2