黑马程序员技术交流社区

标题: 定义了一个接口,子类复写器抽象方法,调用该方法出错! [打印本页]

作者: HM王琦    时间: 2013-4-2 07:50
标题: 定义了一个接口,子类复写器抽象方法,调用该方法出错!
本帖最后由 HM王琦 于 2013-4-2 12:30 编辑
  1. interface Inter
  2. {
  3.         public static final int NUM=3;
  4.         public abstract void show();//在接口中定义抽象方法

  5. }

  6. class InterDemo implements Inter
  7. {
  8.         public void show()
  9.         {
  10.                 System.out.println("复写父类show方法");
  11.         }
  12. }

  13. class InterfaceDemo
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 InterDemo in=new InterDemo();
  18.                 System.out.println(in.show()+".."+Inter.NUM);//编译提示:java:43: 错误: 此处不允许使用 '空' 类型
  19.   System.out.println(in.show()+".."+Inter.NUM);
  20.                
  21.         }
  22. }
复制代码

作者: 谢达    时间: 2013-4-2 08:26
System.out.println(in.show()+".."+Inter.NUM);//编译提示:java:43: 错误: 此处不允许使用 '空' 类型

你show方法的定义是public abstract void show();//返回的是void类型 "+"操作符不能执行void +String类型,你把in.show()放到外面就可以了




作者: 赵喜平    时间: 2013-4-2 08:41
方法show()是个void方法,无返回值,不能做+运算。要把show方法直接放在System外面
作者: vmvm555    时间: 2013-4-2 09:46
in.show返回的是void怎么可能连接的上字符串数据呢
作者: HM王琦    时间: 2013-4-2 12:30
原来如此,明白了,明白了
作者: 李慧声    时间: 2013-4-2 12:34
show()没有返回值,还放在S.O.P中,就相当于S.O.P中嵌套了一个S.O.P,你试试这样呢可以吗,对吧,显然是不行的吧,而且错误和你的提示都是一样的,System.out.println()是要有传递的东西是要有返回值的,你给了一个void肯定挂了。




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