首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

向下转与覆盖的有关问题

2012-01-19 
向下转与覆盖的问题C c new C()((B)c).f()C是B的子类,C中的f方法覆盖了B中的f方法,为什么执行的二行的

向下转与覆盖的问题
C c = new C();
((B)c).f();
C是B的子类,C中的f方法覆盖了B中的f方法,为什么执行的二行的时候调用的是C中的f方法?

[解决办法]
B c = new C();
[解决办法]

探讨
如果对象还是C的话
System.out.println(((B)c).a);
输出的却是B类中的a,这是为什么?

引用:

new的什么对象就是调用什么对象的方法。和你声明的引用类型没关系。

热点排行