Java - 接口(interface)和方法

标签 java interface methods

我现在正在查看一些界面,我想知道为什么这不起作用:

interface I {
    public void doSomething(String x);
}
class MyType implements I {
    public int doSomething(String x) {
        System.out.println(x);
        return(0); 
    }
}

基本上,为什么我不能实现接口(interface)中的方法?他们有不同的签名,因为一个有返回类型?名称、参数和返回类型难道不是使方法独一无二的吗?

最佳答案

不能有不同的返回类型。想象一下下面的情况

class Foo implements I {
  public int doSomething(String x) {
    System.out.println(x);
    return(0);
  }
}
class Bar implements I {
  public void doSomething(String x) {
    System.out.println(x);
    return;
  }
}

List<I> l = new ArrayList();
l.add(new Foo());
l.add(new Bar());

for (I i : l) {
  int x = i.doSomething();  // this makes no sense for Bar!
}

因此,返回类型也必须相同!

关于Java - 接口(interface)和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220038/

相关文章:

java - Selenium/Java/Junit - 获取运行测试时使用的驱动程序/浏览器

java - OOM 异常 - 位图大小超出 VM 预算

java - 在 Java 中执行命令

java - 快艇三样

c# - 从 Visual Studio for C# 的流畅接口(interface)类智能感知中隐藏 GetHashCode/Equals/ToString?

java - 为什么我会收到错误 'Method execute in android.os.AsyncTask not mocked'

java - 为什么回调方法需要返回一些东西?

Java对象=方法?示例包括

java - 在这种情况下,是创建通用 DAO 还是将其与较小的 DAO 分开更好?

javascript - React 中未找到 Meteor 方法 (404)