黑马程序员技术交流社区

标题: 返回值为接口类型 [打印本页]

作者: qiubaoyang    时间: 2014-7-8 17:20
标题: 返回值为接口类型

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

作者: 多一点    时间: 2014-7-8 17:37
那里相当创建了那个inner接口的实现类的子类对象,用的方法叫做匿名内部类的形式而已。

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

返回的不是接口, ...

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

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

返回值是什么?
作者: 多一点    时间: 2014-7-8 20:01
qiubaoyang 发表于 2014-7-8 17:51
返回值是什么?

inter的实现类对象啦
作者: qiubaoyang    时间: 2014-7-9 08:20
如果要返回一个接口的实现类对象,必须要写成如下格式吗?:
  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. }
复制代码




作者: 风决    时间: 2014-7-9 08:47
可以理解为返回的是实现接口的子类。。这样就OK了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2