1。各位前辈我看了很多关于JAVA上溯和下塑转型的内容,但是还是不怎么懂,主要是不懂在实际应用当面在什么时候要用到JAVA上溯和下塑转型,用了有什么作用,谢谢前辈们不怕辛苦的敲字回答。
2。帮我看看下面的下塑转型 hh.b=222;怎么会不能赋值啊。真是搞不清楚拉。
class One{
int b;
}
public class Two extends One{
public static void main(String[] args){
One h =new One();
try{

Two hh = (Two)h;}
catch(ClassCastException e){}

    h.b=111;
    hh.b=222;
    System.out.println(h.b+""+hh.b); }
}

解决方案 »

  1.   

    汗~~~~~~看错了,你捕捉的异常没处理,
    而且hh.b=222;这一句里的hh好象不能识别,hh为局部变量看不见的。
      

  2.   

    Two hh = (Two)h;父类对象向子类强制转换就不对
      

  3.   

    1 这个需要去理解
    举个例子
      向上转型:
      人 路人甲=new 男人();        //男人当然是人,所以没问题;
      向下转型:
      女人 路人乙=(女人)new 人();  //这个人不一定是女人,强转当然有问题
    2
    编译错误: 作用域问题,hh应该声明在try外
    Two hh=null
    try{
       hh = (Two)h;
    }
    运行错误: 由于向下转型异常,hh=null, 再 hh.b=222;会空指针异常
      

  4.   

    kingfish(POWER OF JAVA) 解释的真是精辟。pfpf
      

  5.   

    kingfish(POWER OF JAVA)   的解释好好
    我加两句
    中国有句古话是“青出于蓝而胜于蓝”,到这里就是,如果父类对象可以胜任的工作,那子类对象也一定可以胜任,但,反过来就不一定了。如果说子类可以做的事情父类也可以做的话,那父类就不用子类了,要是子类不如父类的话,那恐怕九斤老太又要说“一代不如一代”了,呵呵。