SE450: Java: Casting [4/41] ![]() ![]() ![]() |
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 {}