我现在正在查看一些界面,我想知道为什么这不起作用:
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/