Java - Les Variables De Référence
" Il est important de comprendre que
c'est le type de la variable de référence -
pas le type de l'objet qu'il désigne
à qui détermine ce que les membres peuvent
être consulté. "
Que voulez-vous dire exactement par là ?
Est-ce limité à la notion de l'Héritage ?
Comment JVM poignées ?
Où est cette citation tirée?
Désolé,Mais je n'ai pas exactement rappelez-vous que... Laissez-moi savoir ,si je ne suis pas autorisé à poser des questions sur la base des cotations publiées sur certains sites web.
BTW, la citation n'apparaît pas dans une recherche Google ... à part pour cette page. Soit vous avez fait une faute de frappe, ou que vous l'avez obtenu à partir d'un site web qui n'est pas indexé par Google !?!
ou même à partir d'un livre!
Vous êtes autorisé à citer des sites web. Mais en fournissant un devis sans dire qui l'a écrit et où vous l'avez trouvé c'est bâclée, paresseux ou les deux.
Désolé,Mais je n'ai pas exactement rappelez-vous que... Laissez-moi savoir ,si je ne suis pas autorisé à poser des questions sur la base des cotations publiées sur certains sites web.
BTW, la citation n'apparaît pas dans une recherche Google ... à part pour cette page. Soit vous avez fait une faute de frappe, ou que vous l'avez obtenu à partir d'un site web qui n'est pas indexé par Google !?!
ou même à partir d'un livre!
Vous êtes autorisé à citer des sites web. Mais en fournissant un devis sans dire qui l'a écrit et où vous l'avez trouvé c'est bâclée, paresseux ou les deux.
OriginalL'auteur sgokhales | 2010-03-23
Vous devez vous connecter pour publier un commentaire.
Cela signifie que supposons que vous avez:
Le type de la variable est
Object
, mais le type de l'objet auquel il se réfère estString
. c'est le type de variable qui détermine ce que vous pouvez faire - de sorte que vous ne pouvez pas appelerLe compilateur ne sait que vous êtes à l'appel d'une méthode sur
Object
, qui ne comprend pastoUpperCase
. De même, les méthodes surchargées ne sont résolues par rapport à ceux que vous savez au sujet de:OriginalL'auteur Jon Skeet
Par exemple:
Dans l'exemple ci-dessus, supposons que le vélo n'a pas le
shiftUp
méthode. La ligneb2.shiftGearUp()
ne serait pas compiler parce que la JVM sait seulement queb2
est unBike
, pas unMountainBike
.Vous pourraient faire le travail par un moulage d'un vélo de montagne type:
OriginalL'auteur jjnguy
En Java une référence de
base
type de classe peut se référer à un objet dechild
classe. Mais l'utilisation d'une telle référence on ne peut accéder aux membres de labase
classe qui ont été transmis à lachild
classe, et non pas les membres qui lachild
de classe a peut-être ajouté.OriginalL'auteur codaddict
Si vous avez une classe
Foo
avec un champ publicfoo
et une classeBar extends Foo
avec un champ publicbar
...Foo myRef = new Bar();
vous permettra seulement de l'accèsmyRef.foo
même si l'objet est vraiment unBar
.Bar myRef = new Bar();
permet d'accéder à la fois àmyRef.foo
etmyRef.bar
. Parce que la référence est déclarée commeBar
.OriginalL'auteur Xr.
Ce que cela signifie, c'est que le compilateur vérifie la classe de la variable de référence pour la présence de méthodes et d'autres membres, par exemple, disons que vous avez un
Dog
sous-classe qui s'étendAnimal
baseclass,Ici, le compilateur vérifie si le makeSound() la méthode est déclarée dans l'Animal de la classe ou pas pour qu'il compile.
OriginalL'auteur Zaki
OriginalL'auteur Chris Cudmore