父类对象能强制转化为子类对象么?

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

如:  
      class   a   extends   b;  
   
  这样能有错么:  
      a   a=(a)new   b();  
   
  我调试了下  
  编译没有问题  
  但是运行报错  
   
  到底是怎么回事情呢?

· 网友精彩回答:

发表者:mofeir

假如a中有setp();函数,而父类没有,  
  运行当然不能正常了。  
  这类转换最好不用,除非先用   instanceof判断一下。例如  
  if   (b   instanceof   a){  
          a   a   =   (a)b;  
  }

发表者:wangbo1118

类型转化是可以的,  
   
  但是你要保证强制转换的类是正确的,  
   
  你的例子中将b   转化成a   ,不正确,所以运行出错。  
   
 

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved