黑马程序员技术交流社区

标题: 这道题为什么错误 理解不了 [打印本页]

作者: dsh    时间: 2014-10-3 13:32
标题: 这道题为什么错误 理解不了
Object obj = new Object(){//这个地方也可以简单理解为向下转型编译看左边,调用的是show()方法,所以当obj指向new的Object类的内部类时是会先看左边
                        void show(){                //Object类中有无show方法
                                System.out.println("show run");
                        }
                };
                obj.show();
作者: 鲁行    时间: 2014-10-3 23:16
匿名内部类的写法和格式都没有错,但是你忽略了写匿名内部类的一个前提条件.这个条件就是在继承和实现中使用多态是要注意:当父类引用指向子类时,父类引用只能调用父类中被子类重写或者继承的方法.当要调用子类的特有方法时,就需要向下转型.

你写的这个代码中,Object类中没有show方法,而你用obj直接调用show方法,就会报出找不到符合这个错误.


作者: 鲁行    时间: 2014-10-3 23:17
鲁行 发表于 2014-10-3 23:16
匿名内部类的写法和格式都没有错,但是你忽略了写匿名内部类的一个前提条件.这个条件就是在继承和实现中使用 ...

并且你创建是本类对象.并不是多态.
作者: hacker◊紫猫    时间: 2014-10-3 23:31
嗯嗯有道理啊‘
作者: hacker◊紫猫    时间: 2014-10-3 23:33
鲁行 发表于 2014-10-3 23:17
并且你创建是本类对象.并不是多态.

基础班的?
作者: 鲁行    时间: 2014-10-3 23:36
                              

是的
作者: dsh    时间: 2014-10-4 13:13
鲁行 发表于 2014-10-3 23:16
匿名内部类的写法和格式都没有错,但是你忽略了写匿名内部类的一个前提条件.这个条件就是在继承和实现中使用 ...

哦   知道了




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