SE450: Java: Casting [4/41] Previous pageContentsNext page

        public class Test {
          public static void main(String args[]) {
            Base obj1 = new Sub1();  // compiles ok, runs ok (upcast)
            Base obj2 = new Sub2();  // compiles ok, runs ok (upcast)
            Sub1 obj3 = obj1;     // compiler error
            Sub1 obj4 = (Sub1) obj1; // compiles ok, runs ok (explicit downcast)

            Sub1 obj5 = (Sub1) obj2; // compiles ok, run-time exception (bad downcast)
            Sub2 obj6 = (Sub2) obj4; // compiler error (crosscast)
          }
        }

        class Base {} 
        class Sub1 extends Base {} 
        class Sub2 extends Base {} 
        

Previous pageContentsNext page