PDA

View Full Version : [java] problema con i campi


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

loris_p
12-01-2007, 20:49
se un campo è private non è visibile neanche alle sottoclassi, se vuoi renderlo visibile solo alle sottoclassi devi dichiararlo protected

lovaz
13-01-2007, 11:03
Un riferimento di tipo A vede solo i metodi e i campi definiti in A
e in superclassi di A.
Per vedere obj.b, obj deve essere un riferimento di tipo B.