我对类型转换做了一个简短的研究,下面是我的代码
interface Foo {}
class Alpha implements Foo {}
class Beta extends Alpha {}
public class Delta extends Beta
{
public static void main( String[] args )
{
Beta x = new Beta();
Alpha a = x;
// Foo f = (Alpha)x;// --> commented out
Beta b = (Beta)(Alpha)x;
Foo f = (Delta)x; // --> complie time error
}
}
如上一条语句所示,它会引发运行时错误 java.lang.ClassCas tException,请告知,如果我使用 Alpha 投射它,那么它工作得非常好。