黑马程序员技术交流社区
标题:
分享一道面试题
[打印本页]
作者:
梁志斌
时间:
2016-1-26 23:44
标题:
分享一道面试题
原理可能简单,但是也可能会有粗心的小伙伴
//1
new Object(){
void show(){
System.out.println("show run");
}
}.show();
//2
Object obj = new Object(){
void show(){
System.out.println("show run");
}
};
obj.show();
1和2的写法正确吗?有区别吗?说出原因。
写法是正确,1和2都是在通过匿名内部类建立一个Object类的子类对象。
区别:
第一个可是编译通过,并运行。
第二个编译失败,因为匿名内部类是一个子类对象,当用Object的obj引用指向时,就被提升为了
Object类型,而编译时检查Object类中是否有show方法,所以编译失败。
作者:
fury1994
时间:
2016-1-27 10:00
吆西~~~~~~~~~~
作者:
qt520
时间:
2016-1-27 11:45
学习了
作者:
jacky左
时间:
2016-1-27 12:26
不错学习了
作者:
z4951061
时间:
2016-1-27 12:37
学习了
作者:
15856681986
时间:
2016-1-27 21:18
学习了。。
作者:
huijiadanipp
时间:
2016-1-27 21:26
学习了...
作者:
the_way
时间:
2016-1-27 22:29
嗯 收藏一下啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2