public class Casting {
public static void main(String[] args) {
// TODO Auto-generated method stub
Derived drv = new Derived();
Base base = (Base) drv;
System.out.println("Class : " + base.getClass());
}
}
public class Derived extends Base{
}
public class Base{
}
i expected Base?Why?
package com.upcast;
class Base {
public Base() {}
public void foo() {
System.out.println("I'm the base!");
}
}
package com.upcast;
class Child extends Base {
public Child() {}
public void foo() {
System.out.println("I'm the child!");
}
}
package com.upcast;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Child x = new Child();
Base y = (Base) x;
y.foo();
}
}
outputi expected Base?
Why?