类型安全性测试 Object o1 = new Object(); Object o2 = new B(); Object o3 = new D(); Object o4 = o3; B b1 = new B(); B b2 = new D(); D d1 = new D(); //B b3 = new Object(); CTE //D d2 = new Object(); CTE B b4 = d1; //D d3 = b2; CTE D d4 = (D)d1; D d5 = (D)b2; //D d6 = (D)b1; RTE //B b5 = (B)o1; RTE B b6 = (D)b2; 这里 CTE表示编译期间错误,RTE表示运行期间错误。记住两点,涵盖以上所有类型转换:1.一个对象可以转为它的任何基类型,不需要任何额外语法,这是一种安全的隐式转换2.一个对象要显示转换成它的派生类型,这是强制的,因为运行期间可能会发生异常——RTE