类型安全性测试            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

相关文章:

  • 2021-12-02
  • 2021-06-18
  • 2022-01-12
  • 2021-06-30
  • 2021-08-03
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-01
  • 2021-12-26
  • 2021-07-23
  • 2022-02-17
相关资源
相似解决方案