考虑下面的代码:
public class Test{
public static void main(String str[]){
B b = new B();
A a1 = (A)b;//Explicit type conversion
A a2 = b;
}
}
class A{}
class B extends A{}
在上面的代码中有两行:
A a1 = (A)b;//Explicit type conversion
A a2 = b;
相等的?如果不是,那么两者之间有什么区别,如果是,那么在 java中有没有我们需要将子类对象显式转换为超类对象的场景?