使用泛型.
public interface Inter {
T someMethod();
void someMethod2(T obj);
}
public class C1 implements Inter {
public C1 someMethod() {
// ..
}
public void someMethod2(C1 obj) {
// ..
}
}
public class C2 implements Inter {
public C2 someMethod() {
// ..
}
public void someMethod2(C2 obj) {
// ..
}
}
编辑:(使用有界泛型类型;响应OP的评论)
public interface Inter> {
T someMethod();
void someMethod2(T obj);
}
public class C1 implements Inter {
public C1 someMethod() {
return new C1();
}
public void someMethod2(C1 obj) {
// ..
}
}
public class C2 implements Inter { // ERROR
..
}
但是,抓住了这个问题.
public class C2 implements Inter { // COMPILES!
..
}
因为,C1也满足T延伸Inter< T>.我相信这是可以的.