错误: 匿名内部类其实也就是继承一个类,那按照多态性,不是编译器不是应该找到子类覆盖的中的 innerF ( ) 吗?
`D:java_exercise>javac AnonymousInnerClass5.java
AnonymousInnerClass5.java:25: 错误: 此处不允许使用 '空' 类型
System . out .println (aic . f ( "as"). innerF ( ) ) ;`
代码如下:
class B
{
void innerF ( )
{
}
}
public class AnonymousInnerClass5
{
public B f ( String s )
{
return new B ( )
{
String ss = s ;
@Override void innerF ( )
{
System . out .println (ss) ;
}
};
}
public static void main (String [ ] args)
{
AnonymousInnerClass5 aic = new AnonymousInnerClass5 ( ) ;
System . out .println (aic . f ( "as"). innerF ( ) ) ;
}
}
一切都是正常的,但是 innerF()
方法的返回值的 void
,你却用它作为 System.out.println
的参数,这里就错了。
这一行应该是 aic.f("as").innerF()
,外面不应该再有 System.out.println
了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。