A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张振纲 中级黑马   /  2012-7-31 01:04  /  2266 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. interface AAA
  2. {
  3.         void show();
  4. }

  5. class Student
  6. {
  7.         public AAA SSS()
  8.         {
  9.                 new AAA()
  10.                 {
  11.                 public void show()
  12.                         {
  13.                         System.out.println("zhongguo");
  14.                         }
  15.                 }.show();
  16.        
  17.         };
  18. }
  19. class  Main
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 new Student().SSS();
  24.         //new Student().new Inner().show();
  25.         }
  26. }
复制代码
错误提示,18行缺少返回语句,求指点

5 个回复

倒序浏览
第10行前加上return,例如: return new AAA()
回复 使用道具 举报
public AAA SSS()这个方法被声明为返回类型为AAA,所以必须返回一个AAA子类型的实例(因为AAA是接口,所以实例必须是子类),在new AAA()前面加上reurn即可
回复 使用道具 举报
  1. interface AAA {
  2.         void show();
  3. }

  4. class Student {
  5.         // 你这里要返回AAA类型的对象,而你却没有返回
  6.         public AAA SSS() {
  7.                 return new AAA() {
  8.                         public void show() {
  9.                                 System.out.println("zhongguo");
  10.                         }
  11.                 };
  12.         };
  13. }

  14. class Main {
  15.         public static void main(String[] args) {
  16.                 // 分开写的话是:
  17.                 // AAA aaa = new Student().SSS();
  18.                 // aaa.show();
  19.                 new Student().SSS().show();
  20.         }
  21. }
复制代码
还有,楼主的类名和方法名要起的好点,最好能见名知意

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
class  Student中的SSS方法要求返回一个AAA,一个方法的返回值必须通过return语句来完成,,我看你方法仅仅只是想通过匿名类调用接口中的方法show()
直接将SSS该成void得了;;;;
回复 使用道具 举报
希望对你有帮助奥

)$M4_3~]JNX5T)Y4I4CAR@X.jpg (62.44 KB, 下载次数: 29)

)$M4_3~]JNX5T)Y4I4CAR@X.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马