扩展接口的任何类都必须实现接口中声明的方法.不确定这是否可行,但我想做的是以下内容:
interface test {
____ get();
}
class A extends test {
int val;
A(int x) {
val = x;
}
int get() {
return Val;
}
class B extends test {
String val;
B(String x) {
val = x;
}
String get() {
return Val;
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用能够返回两种不同数据类型的方法签名?
zap*_*apl 15
不完全相同,但您可以使用泛型类型参数.
interface Test<T> {
T get();
}
class A implements Test<Integer> {
int val;
A(int x) {
val = x;
}
@Override
public Integer get() {
return val;
}
}
class B implements Test<String> {
String val;
B(String x) {
val = x;
}
@Override
public String get() {
return val;
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,您必然会使用,Integer因为泛型不适用于基元.
另请注意,同一接口的这2个版本现在基本上是2个不同的接口.