黑马程序员技术交流社区

标题: 匿名内部类的小测试的问题 [打印本页]

作者: 乖睡觉咯    时间: 2013-8-19 15:08
标题: 匿名内部类的小测试的问题
本帖最后由 乖睡觉咯 于 2013-8-19 15:12 编辑
  1. new Object(){
  2.     void method(){
  3.         System.out.println("method run");
  4.     }
  5. }.method();
复制代码
第一个和第二个 那个是正确的??为什么??
作者: 乖睡觉咯    时间: 2013-8-19 15:13
第二个
Object obj = new Object(){
    void method(){
        System.out.println("method run");
    }
};
obj.method();
作者: gulup    时间: 2013-8-19 15:23
匿名,顾名思义,就是没有名字的,那么结果就不用我说了吧。
作者: 单凯    时间: 2013-8-19 15:39
第一个是对的,第二个是错的匿名内部类有点像子父类继承,定义内部类一般是重写外部类的方法,或者实现某个接口
你的第一个程序,定义了匿名内部类,相当于继承了Object内的所有方法,然后又增加了一个method的功能,
自己new了一个对象,然后使用了自己的功能,没有问题。
第二个程序,与子父类的多态原理类似,因为Object里面没有method的方法,所以不能用Object的对象引用去调用这个方法


作者: 杨增坤    时间: 2013-8-19 22:23
楼主,要是理解了,请把问题的"未解决"更改为"已解决"
谢谢合作!




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