La combinazione dei due approcci
public Object add (Object x, Object y) throws NullPointerException, ClassCastException;
public Object sub (Object x, Object y) throws NullPointerException, ClassCastException;
public interface Addable {
public Object add (Object x) throws NullPointerException, ClassCastException;
public Object sub (Object x) throws NullPointerException, ClassCastException;
gli elementi di SumSet possono essere
- sottotipi di Addable
- definiti dopo Addable
- forzati a implementare anche le operazioni di Addable
- tipi per cui abbiamo definito un tipo collegato sottotipo di Adder
due costruttori corrispondenti in SumSet