The result is blue1. Im trying to understand why, cause I read in Oracle web page, the object you created was a Test object, at run time, when the getColor method was invoked, the runtime reference is to getColor method of a Test class, even though the variable supersub is of the type Testing.
So using Virtual method Invocation will only override the methods, im agree with the blue, but why I received 1..
I thought I will be receiving blue2.
Sorry for to many topics and questions, im preparing to the SCJP, and im reading again chapter by chapter, and also i bought the object oriented programming java book c thomas wu.
number is an instance variable. There is no virtual invocation of instance variables; the reference is resolved at compile time based on the declared type (Testing) of supersub and supersub1. You'll probably get the expected results if you use an accessor, for example a getNumber() method and call that instead of accessing number directly.
Willie Smits can speak 40 languages. This tiny ad can speak only one: