A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© dsh 中级黑马   /  2014-10-3 13:32  /  1032 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Object obj = new Object(){//这个地方也可以简单理解为向下转型编译看左边,调用的是show()方法,所以当obj指向new的Object类的内部类时是会先看左边
                        void show(){                //Object类中有无show方法
                                System.out.println("show run");
                        }
                };
                obj.show();

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

6 个回复

倒序浏览
匿名内部类的写法和格式都没有错,但是你忽略了写匿名内部类的一个前提条件.这个条件就是在继承和实现中使用多态是要注意:当父类引用指向子类时,父类引用只能调用父类中被子类重写或者继承的方法.当要调用子类的特有方法时,就需要向下转型.

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

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

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

并且你创建是本类对象.并不是多态.
回复 使用道具 举报
嗯嗯有道理啊‘
回复 使用道具 举报
鲁行 发表于 2014-10-3 23:17
并且你创建是本类对象.并不是多态.

基础班的?
回复 使用道具 举报
                              

是的
回复 使用道具 举报
dsh 中级黑马 2014-10-4 13:13:19
7#
鲁行 发表于 2014-10-3 23:16
匿名内部类的写法和格式都没有错,但是你忽略了写匿名内部类的一个前提条件.这个条件就是在继承和实现中使用 ...

哦   知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马