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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiubaoyang 中级黑马   /  2014-7-8 17:20  /  1430 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


接口也可以当做返回值?不知道程序是如何执行的?请教各位大神的帮忙!

7 个回复

倒序浏览
那里相当创建了那个inner接口的实现类的子类对象,用的方法叫做匿名内部类的形式而已。

返回的不是接口,而是一个接口的实现类的对象。
回复 使用道具 举报
多一点 发表于 2014-7-8 17:37
那里相当创建了那个inner接口的实现类的子类对象,用的方法叫做匿名内部类的形式而已。

返回的不是接口, ...

这里是如何体现创建那个inter接口的实现类的子类对象?
而  static Inter method(){}又是什么意思?
我可不可以这样理解:Inter为返回值类型,而method是方法名?
回复 使用道具 举报
qiubaoyang 发表于 2014-7-8 17:43
这里是如何体现创建那个inter接口的实现类的子类对象?
而  static Inter method(){}又是什么意思?
我可 ...

这就是一个带返回值的方法啊只要是Inter类型的都可以返回啊,当然我们只能返回inter的实现类对象啦,因为接口不能new嘛。
回复 使用道具 举报
多一点 发表于 2014-7-8 17:47
这就是一个带返回值的方法啊只要是Inter类型的都可以返回啊,当然我们只能返回inter的实现类对象啦,因为 ...

返回值是什么?
回复 使用道具 举报

inter的实现类对象啦
回复 使用道具 举报
如果要返回一个接口的实现类对象,必须要写成如下格式吗?:
  1. interface Inter
  2. {
  3.         void show();
  4. }
  5. class Outer
  6. {
  7.         static Inter 方法名(){
  8.                 return new Inter(){
  9.                         ....
  10.                 }
  11.         }
  12. }
  13. class InnerClassTest
  14. {
  15.         public static void main(String...args){
  16.                 Outer.method().show();
  17.         }
  18. }
复制代码



回复 使用道具 举报
可以理解为返回的是实现接口的子类。。这样就OK了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马