java - Why does this cause a ClassCastException? -
public class test8 { public static void main (string args[]) { number numberref = new integer(0); double doubleref = (double)numberref; } }
it shows me exception @ runtime:
exception in thread "main" java.lang.classcastexception: java.lang.integer cannot cast java.lang.double
why so?
you trying cast instance of integer
reference double
cannot happen. integer
, double
2 different classes , objects of each cannot cast each other
number
common super
class integer
, double
, hence instance of double
or integer
can upcasted number
. in other words, integer
is a number
, double
is a number
but, integer
is not a double
integer = new integer(0); double d = new double(1); number ni = i; number di = d; integer id = d; //invalid; double dd = i; //invalid
Comments
Post a Comment