错误: 匿名内部类其实也就是继承一个类,那按照多态性,不是编译器不是应该找到子类覆盖的中的 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 ( ) ) ;
}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
一切都是正常的,但是
innerF()方法的返回值的void,你却用它作为System.out.println的参数,这里就错了。这一行应该是
aic.f("as").innerF(),外面不应该再有System.out.println了。