Griffo
12-01-2007, 20:38
Avrei un problema con Java :cry: , se qualcuno riuscisse a risolvere il problema gliene sarei molto grato...
http://prog.dsi.unimi.it/Esami/Jan06/versione-1.pdf
Allora nell'esercizio n. 4 non riesco proprio a capire perchè nel secondo punto l'espressione non viene compilata. Il fatto che sul libro c'è più volte scritto che quando si invoca un metodo il compilatore lo cerca partendo dalla classe effettiva dell'oggetto e, solo se non lo trova in questa classe, risale la gerarchia delle classi e continua la ricerca. Quindi un metodo di una classe viene compilato anche se la variabile riferimento è di una superclasse dell'oggetto.
Qua invece, a quanto pare, quando si richiama un campo della classe effettiva il compilatore si incazza se il riferimento è di una superclasse della classe dell'oggetto. Il fatto che questo sul libro non c'è scritto da nessuna parte e mi sembra una cosa così stupida questa regola di java. :confused:
Voi che dite??
(il prof tra l'altro oggi ha fatto vedere questo es e l'ha corretto come sul pdf...) :muro:
Grazie mille :D
http://prog.dsi.unimi.it/Esami/Jan06/versione-1.pdf
Allora nell'esercizio n. 4 non riesco proprio a capire perchè nel secondo punto l'espressione non viene compilata. Il fatto che sul libro c'è più volte scritto che quando si invoca un metodo il compilatore lo cerca partendo dalla classe effettiva dell'oggetto e, solo se non lo trova in questa classe, risale la gerarchia delle classi e continua la ricerca. Quindi un metodo di una classe viene compilato anche se la variabile riferimento è di una superclasse dell'oggetto.
Qua invece, a quanto pare, quando si richiama un campo della classe effettiva il compilatore si incazza se il riferimento è di una superclasse della classe dell'oggetto. Il fatto che questo sul libro non c'è scritto da nessuna parte e mi sembra una cosa così stupida questa regola di java. :confused:
Voi che dite??
(il prof tra l'altro oggi ha fatto vedere questo es e l'ha corretto come sul pdf...) :muro:
Grazie mille :D