Ciao a tutti
Definisco generalmente un metodo m "sovrascritto" quando definisco un altro metodo con lo stesso nome di m che però differisce, ad esempio, per il tipo o il numero di parametri espliciti (quindi la macchina virtuale è in grado di capire a quale metodo l'utente sta realmente facendo riferimento proprio analizzando l'entità dei parametri espliciti).
Facendo qualche esercizio mi sono ritrovato in questa situazione:
-In una classe, che per semplicità chiamerò "S1", ho definito un metodo di esemplare "ciao()";
-In una seconda classe "S2", composta della prima classe (ossia ha come campi di esemplare oggetti di tipo "S1"), ho un metodo di esemplare che da consegna è chiamato "ciao()". (Specifico NON ESSERE UNA SITUAZIONE DI EREDITARIETA').
Posso operare in questa maniera?
La macchina virtuale JVM capisce che il secondo metodo "ciao()" è il metodo della classe S1 in quanto agisce su un oggettoDiTipoS1 e NON su un oggetto di tipo S2? O traduce il tutto in una ricorsione senza senso?codice:public class S2{ public void ciao(){ ... oggettoDiTipoS1.ciao(); } }
Spero di essermi spiegato![]()