【发布时间】:2018-11-02 12:29:26
【问题描述】:
class SingleTon{
Data<A> a;
Data<B> b;
Data<C> c;
// ... etc
class Data<O extends I<O>>{
O o;
public void update(O o){
this.o.update(o);
}
}
}
interface I<T>{
void update(T t);
}
class A implements I<A>{
private String a;
@Override
public void update(A a) {
this.a = a.a;
}
}
class B extends A implements I<B>{
private String b;
@Override
public void update(B b) {
super.update(b);
this.b = b.b;
}
}
class C implements I<C> {public void update(C c){}}
此代码无法编译,因为超类和子类试图实现相同的接口但类型参数不同。
接口 I 不能被不同类型的参数 (A,B) 继承,有人有解决方法吗?
【问题讨论】:
-
欢迎来到 SO。如果您说代码不起作用,请提供“不起作用”的更详细定义,即错误消息等...
-
不能编译,不是多重继承,是子类和超类试图实现相同的接口但类型参数不同
-
@AndroidDev - 请将此详细信息添加到问题中,而不是将其留在 cmets 中。
标签: java