开发者社区> 问答> 正文

验证匿名内部类的多态属性出现错误。

错误: 匿名内部类其实也就是继承一个类,那按照多态性,不是编译器不是应该找到子类覆盖的中的 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 ( ) ) ;   
        }
}

展开
收起
蛮大人123 2016-03-11 11:17:04 2150 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    一切都是正常的,但是 innerF() 方法的返回值的 void,你却用它作为 System.out.println 的参数,这里就错了。
    这一行应该是 aic.f("as").innerF() ,外面不应该再有 System.out.println 了。

    2019-07-17 18:58:45
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载