当然可以,在Thinking in java中叫upcasting

解决方案 »

  1.   

    你可以看看ClassCastException的具体含义一般情况下都能转换的。例如String<-->Object
      

  2.   

    你问的问题和你写的代码正好反了。 你问的是父类可不可以转换成子类,答案是可以。
    你代码
    Parent p=new Parent()
    Son s=(Son)p;
    写的是把父类转换成了子类。 答案是不可以。
      

  3.   

    父类对象的引用可以指向子类的对象。
    如Parent p=new Son()是可以的,反之不一定成立。如果父类对象的引用指向的实际是一个子类的对象,那么父类对象的引用可以强制转化成子类对象的引用。如:
    Parent p=new Son()
    Son s=(Son)p;
      

  4.   

    Parent p=new Parent()
    Son s=(Son)p;
    不可以。
      

  5.   

    Parent p=new Son()
    Son s=(Son)p;
    这样转换是可以Parent p=new Parent()
    Son s=(Son)p;
    这样其实编译应该没有问题,不过执行要抛异常!
      

  6.   

    这样是允许的:
    Parent p=new Son();
    但是你在使用的时候,只能用到 Parent 里有的方法。Son特有的方法是调不到的。