Originariamente inviato da c47
codice:
public abstract class Classe<P, S> {

        protected abstract P prossimo(P ps);

	protected abstract P ultimo();

	protected abstract S prima(P ps);

(...)
}
Quella "P" e quella "S" sapete cosa significano?
Sono due tipi "generici", scelti dal programmatore nel momento in cui utilizzerà quella classe.

codice:
public class MiaSottoClasseSpecializzata extends Classe<Classe1, Classe2> {
// qui implementerò i seguenti metodi:

protected Classe1 prossimo(Classe1 ps) { ... }

protected Classe1 ultimo() { ... }

protected Classe2 prima(Classe1 ps) { ... }
}
http://docs.oracle.com/javase/tutori...ics/types.html