Salve a tutti,
dopo giorni e giorni di post su questo forum (vedi POST JAVA: Override Metodi), e aver sottoscritto il problema alla Sun stessa,
mi è stato confermato l'esistenza di un bug veramente GROSSO!!!



Ecco il seguente esempio:

public Class ReturnClass {}
public Class ReturnClassExt extends ReturnClass {}

public Class OverRide1
{
public ReturnClass getRet() {}
}

public Class OverRide2 extends OverRide1
{
public ReturnClassExt getRet() {}
}

La compilazione con la 1.4.2 genera un errore, dato che è impossibile fare l'override di un metodo che ha un valore di ritorno differente da quello presente nella firma del metodo della classe padre.

Invece la compilazione con la 1.5.0 non genera nessun errore.

Abbiamo scoperto che con la 1.5.0, quando si fa l'override di un metodo di una classe padre, e si mette come valore di ritorno una classe che estende il valore di ritorno del metodo della classe padre, esso in fase di compilazione non da alcun errore.

Ovviamente questo va contro qualsiasi concetto di programmazione Java, pertanto è impossibile che la Sun abbia fatto una modifica di così grossa importanza senza averla neanche menzionata.
Infatti la Sun ha aperto un nuovo BugTrack, disponibile tra un paio di giorni al seguente link:

http://bugs.sun.com/bugdatabase/view...bug_id=6182367

Ciao