在Java中,必须显式转换以向下转换变量
public class Fruit{} // parent class
public class Apple extends Fruit{} // child class
public static void main(String args[]) {
// An implicit upcast
Fruit parent = new Apple();
// An explicit downcast to Apple
Apple child = (Apple)parent;
}
除了Java不执行任何类型推断的事实外,是否还有其他原因可以满足此要求?
使用新语言实现自动向下转换是否存在任何“陷阱”?
例如:
Apple child = parent; // no cast required