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?
public class S2{
public void ciao(){
...
oggettoDiTipoS1.ciao();
}
}
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?
Spero di essermi spiegato