Salve vi espongo questa domanda riguardo al capitolo delle interfacce:

public class Counter implements Comparable {
...
public int compareTo(Object x) {
Counter otherCounter = (Counter)x;

// perchè (Counter)x è tra parentesi? cosa vuol dire?

if (val < otherCounter.val) return -1;
if (val > otherCounter.val) return +1;
/* else */ return 0;
}
}

quella riga non è un costruttore perchè manca il new, e allora che cosa vuol dire?