ReferenceLabeledWithDynamicTypeDRAFT
In stack and heap diagrams, reference variables are labeled with the types of the objects they refer to
CorrectionHere is what's right.
Every variable in a stack and heap diagram is labeled with its “static type” (i.e., the type it is declared with). The “dynamic type” (i.e., the type of the object the variable refers to) can change throughout the execution (because we can assign values to the variable, and those values can be of any subtype of the variable’s “static type”).
For reference variables, the “static type” and “dynamic type” can differ. E.g., in Sprite s = new Pacman()
, the “static type” of variable s
is Sprite
, but the “dynamic type” of variable s
after the statement completes is Pacman
, because the variable will point to a Pacman
object.