Assigning a number to an Object... Strangely, but this piece of code runs in Java -
assigning number object... strangely, piece of code runs in java:
object a="123abc"; system.out.println("a="+a); object b=123; system.out.println("b="+b); the result being:
a=123abc b=123 could please explain why , how works?
i want expand on @juned's answer, based on @art's comment "it's still not obvious me. b's type still - object, right?"
in code:
object = "123abc"; system.out.println("a=" + a); object b = 123; system.out.println("b=" + b); 123abc object of class string — string happens defined constant value @ compile time.
a variable reference object of class object or any compatible sub-class.
it similar doing this:
object a; string s = new string("123abc"); // redundant way make string = s; the variable string s can assigned variable object a because string is-a subclass of object; object a can reference any kind of object including subclasses.
the same applies object b except 123 primitive integer constant. when assigning object, auto-boxed juned mentioned, doing object b = new integer(123);
again, integer subclass of object, assignment legal.
Comments
Post a Comment