类型安全性测试

            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
posted @ 2007-08-05 22:55  包建强  Views(852)  Comments(0Edit  收藏  举报