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 {}