[b]1.问题描述[/b]
本来是重构时在父类里增加了一个protected方法(这个方法在子类中多处出现),然后在子类里使用这个方法的地方都用super来调用这个方法,结果编译始终不对。编译器提示super下面没有这个方法。
[b]2. 问题分析[/b]
对比后发现有些地方能用,有些地方不能用。原来根本原因在于有些子类的方法里使用了[color=red]匿名内部类[/color],在内部类的方法里使用super自然代表的就不是外部类的父类了,而是内部类自己的父类。原因清楚了,搞得差点开始怀疑人生:)
[b]3. 回顾[/b]
[b]3.1 super关键字[/b]
[url]http://blog.youkuaiyun.com/anmei2010/article/details/4093118[/url]
本来是重构时在父类里增加了一个protected方法(这个方法在子类中多处出现),然后在子类里使用这个方法的地方都用super来调用这个方法,结果编译始终不对。编译器提示super下面没有这个方法。
[b]2. 问题分析[/b]
对比后发现有些地方能用,有些地方不能用。原来根本原因在于有些子类的方法里使用了[color=red]匿名内部类[/color],在内部类的方法里使用super自然代表的就不是外部类的父类了,而是内部类自己的父类。原因清楚了,搞得差点开始怀疑人生:)
[b]3. 回顾[/b]
[b]3.1 super关键字[/b]
[url]http://blog.youkuaiyun.com/anmei2010/article/details/4093118[/url]
本文探讨了在Java中使用super关键字调用父类方法时遇到的问题,特别是在涉及匿名内部类的情况下。通过一个具体的重构案例,揭示了super关键字在不同上下文中的行为差异。
402

被折叠的 条评论
为什么被折叠?



