我有以下接口
public interface Group {
public Group add(Group g);
public Group sub(Group g);
public Group getAddInv();
public boolean isZero();
}
public interface Ring extends Group {
public Ring mul(Ring r);
public boolean isOne();
}
我现在想让这些接口通用,以确保只能为相同代数结构的元素调用方法。
例如,应该可以添加两个环元素,但不能添加一个群元素和一个环元素。
我的第一个想法是使用 < ? super Ring > 用于 Group 的方法,但这并没有成功。我怎样才能做到这一点?
更新:
public interface Group<T> {
public T add(T g);
public T sub(T g);
public T getAddInv();
public boolean isZero();
}
public interface Ring<T> extends Group<Ring<T>> {
public T mul(T r);
public boolean isOne();
}
那会是一个解决方案吗?