【发布时间】:2012-05-22 03:16:28
【问题描述】:
只是在玩接口,我有一个我无法真正理解的问题。
以下代码无法运行,这是我所期望的行为,因为接口方法要求该方法适用于任何对象,并且实现的方法已将签名更改为仅允许字符串对象。
interface I {
public void doSomething(Object x);
}
class MyType implements I {
public void doSomething(String x) {
System.out.println(x);
}
}
但是,使用下面的代码块,我很震惊地发现它确实有效。 我认为它不起作用,因为我们期望返回一个对象,而实现的方法只会返回一个字符串对象。为什么会这样,这里传递参数和返回类型这两个原则有什么区别?
interface I {
public Object doSomething(String x);
}
class MyType implements I {
public String doSomething(String x) {
System.out.println(x);
return(x);
}
}
【问题讨论】:
标签: java methods interface implements