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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 山水游客 中级黑马   /  2012-7-12 17:44  /  1545 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙胜录 于 2012-7-19 14:31 编辑

如果创建了一个内部类,然后继承其外围类并重新定义比内部类,会发生什么呢?也就是说,内部类可以被覆盖吗?

2 个回复

倒序浏览
本帖最后由 achilles 于 2012-7-12 18:21 编辑

是可以覆盖的 Map类就是一个例子
它的子类TreeMap还有HashMap就都复写了Map的内部接口Map.Entry

点评

接口中可以定义内部类吗?是内部接口呢,TreeMap与HashMap各有一类实现了Map中的Entry接口而已。  发表于 2012-7-12 18:44
回复 使用道具 举报
内部类被编译器, 编译成 字节码文件为
外部类$内部类.class 。
如果创建了一个内部类,然后继承其外围类并重新定义比内部类,会发生什么呢


另一个类第二个外部类继承了第一个外部类,重新定义了第一个外部类中的内部类。
但这个内部类将与它父类中的内部类,没有继承或实现关系。

所以不存在所谓的覆盖或重写的概念。
覆盖或重写,必须是子父类或实现或个接口。

这两个内部类,是完全不同的内部类,没有什么关系。

非得说有关系,也只是说 这两个内部类,都可以访问第一个外部类的 非private 成员。

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