私は次のインターフェースを持っています
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();
}
ここで、これらのインターフェイスを汎用にして、同じ代数的構造の要素に対してのみメソッドを呼び出せるようにします。
たとえば、Ringの2つの要素を追加することは可能ですが、Groupの1つの要素とRingの1つの要素を追加することはできません。
私の最初の考えは<?グループのメソッドのスーパーリング>ですが、うまくいきませんでした。どうすればこれを達成できますか?
アップデート:
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();
}
それは解決策でしょうか?