Il titolo non è molto esplicativo spero di riuscire a spiegare il problema.

Supponiamo che io abbia due classi:

codice:
public Message{

   Language language;
   
   .... metodi che usano l'oggetto language...

}

public abstract class Language{

    ... metodi da implementare ...

}
So che non è coerente per il fatto che Language deve essere estesa da un'altra classe, ed è qui che sta il problema.

Io ho diversi linguaggi che devo estendere Language ma devo fare in modo che in message compaia l'istanza di un oggetto standard (Language in questo caso)

Forse con un esempio potrei essere più chiaro

Supponiamo che qualcuno scriva la classe S1
codice:
class L1 extends Language{};
ma non possa mettere mano alla classe Message per cambiare la proprietà
codice:
Language language;
in
codice:
L1 language;
Come posso fare per ovviare al problema?

E' importante, se non mi sono spiegato, e dubito fortemente di averlo fatto, fatemi tutte le domande che volete.

Grazie a tutti