一个scjp的问题,本人小菜,搞不懂!(在线等……)

lanqiaiyuanyuan 2010-01-10 07:41:55
1. interface TestA { String toString(); }
2. public class Test {
3. public static void main(String[] args) {
4. System.out.println(new TestA() {
5. public String toString() { return “test”; }
6. });
7. }
8. }
What is the result?
A. test
B. null
C. An exception is thrown at runtime.
D. Compilation fails because of an error in line 1.
E. Compilation fails because of an error in line 4.
F. Compilation fails because of an error in line 5.
Answer: A

疑惑:为什么 TestA可以 用 new 啊,不是说接口不可以new的吗?
...全文
55 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ukair 2012-05-09
  • 打赏
  • 举报
回复
但我输出的怎么是com.test.T$1@18a992f?
yu201026 2010-01-10
  • 打赏
  • 举报
回复
new TestA() {
public String toString() { return “test”; }
}
匿名内部类
lanqiaiyuanyuan 2010-01-10
  • 打赏
  • 举报
回复
谢谢大家!
garysoft 2010-01-10
  • 打赏
  • 举报
回复

new TestA() {
public String toString() { return “test”; }
}

匿名内部类..顾名思义是没名字的..{}里的东西就是实现TestA接口的方法...

Sunny_kaka 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lanqiaiyuanyuan 的回复:]
那new TestA() {
    public String toString() { return “test”; }
}
和接口类TestA具体什么关系呢?是的话,还可以用其他方法取代new TestA() {
    public String toString() { return “test”; }
} 还能得到同样的结果吗?
[/Quote]
匿名类的用法.
new TestA() {
public String toString() { return “test”; }
}
这种写法实际上返回的是一个实现了TestA接口的匿名类的引用.
大括号里是匿名类的声明.
huntor 2010-01-10
  • 打赏
  • 举报
回复
new TestA() {
public String toString() { return “test”; }
}
implementents TestA接口的匿名内部类 的一个实例。编译器会生成一个名称类似Test$1的类
lanqiaiyuanyuan 2010-01-10
  • 打赏
  • 举报
回复
那new TestA() {
public String toString() { return “test”; }
}
和接口类TestA具体什么关系呢?是的话,还可以用其他方法取代new TestA() {
public String toString() { return “test”; }
} 还能得到同样的结果吗?
huntor 2010-01-10
  • 打赏
  • 举报
回复
new ANotFinalClass() {
public String toString() { return “test”; }
}
匿名子类
huntor 2010-01-10
  • 打赏
  • 举报
回复
new TestA() {
public String toString() { return “test”; }
}
匿名类

50,549

社区成员

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

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