这称为转换,请参见此处:
- http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
基本上,通过执行以下操作:
IntElement temp = (IntElement) otherElement;
您告诉编译器忽略声明
otherElement为的事实,
DataElement并相信您将成为的一个
IntElement,不是
DataElement或其他子类
DataElement。
在这种情况下,您不能
IntElement temp =otherElement;像
otherElement定义的那样做
DataElement其他事情
IntElement。这将对类型安全性造成很大的打击,这就是首先定义类型的原因。
从技术上讲,这可以使用类型推断来完成:
- http://en.wikipedia.org/wiki/Type_inference
但是Java不支持它,您必须明确。
如果有可能获得其他元素,则可能要
instanceof在强制转换之前检查类型运行时:
- Operators / TheinstanceofKeyword.htm“> http://www.java2s.com/Tutorial/Java/0060_Operators/TheinstanceofKeyword.htm
完成这一步后的某个时候,您可能还想看看泛型:
- http://en.wikipedia.org/wiki/Generics_in_Java



