黑马程序员技术交流社区

标题: java 方法返回类型请教 [打印本页]

作者: 虾米吃螃蟹    时间: 2015-7-9 10:42
标题: java 方法返回类型请教
  1. public class Example99 {
  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 Test.function().method();
  5.         }
  6. }

  7. interface Inter  
  8. {     
  9.     void method();  
  10. }  
  11.       
  12. class Test {
  13.         public static Inter  function(){
  14.                 return new Inter(){
  15.                         public void method(){
  16.                                 System.out.println(4);
  17.                         }
  18.                 };
  19.         }
  20. }  
复制代码
为何当public static Inter function()中的Inter换为void时并把return取消,Test.function().method();会报错
作者: Bule丶    时间: 2015-7-9 11:21
你调用了function方法,但是你也通过function调用了method这个方法,这个方法你并没有被实现,但是你却调用了,所以报错了
作者: a546036242    时间: 2015-7-9 11:23
兄弟 你都没写接口实现 当然会报错啦
作者: 虾米吃螃蟹    时间: 2015-7-9 11:34
a546036242 发表于 2015-7-9 11:23
兄弟 你都没写接口实现 当然会报错啦

此处是匿名内部类
作者: 帅帅loyal    时间: 2015-7-9 11:35
一开始function方法返回了一个对象回去,然后对象可以调用method方法,现在你把function没有返回值了,也就是method方法没有了被执行的对象,你还把method孤零零的杵那里了当然要报错啦
作者: 虾米吃螃蟹    时间: 2015-7-9 11:38
Bule丶 发表于 2015-7-9 11:21
你调用了function方法,但是你也通过function调用了method这个方法,这个方法你并没有被实现,但是你却调用 ...

应该怎么改写
作者: Bule丶    时间: 2015-7-9 11:40
虾米吃螃蟹 发表于 2015-7-9 11:38
应该怎么改写

Test.function();
作者: 虾米吃螃蟹    时间: 2015-7-10 06:56
Bule丶 发表于 2015-7-9 11:40
Test.function();

Test.function().method();不动,改写test
作者: 虾米吃螃蟹    时间: 2015-7-10 07:01
帅帅loyal 发表于 2015-7-9 11:35
一开始function方法返回了一个对象回去,然后对象可以调用method方法,现在你把function没有返回值了,也就 ...

看明白 了,谢谢




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