编写了以下的类:
class Car{ 
    //汽车类 

public class Bmw extends Car{ 
        public static void main(String args[]) { 
                Car car = new Car(); // 创建car对象 
                Bmw bmw = new Bmw(); // 创建bmw对象 
               Bmw newcar=(Bmw) car; 
                
        } 
} 运行后抛出ClassCastException异常,是什么原因呢?
具有继承关系的两个类之间不是可以互相进行强制类型转换的吗

解决方案 »

  1.   

    一般都是强转,类型是父类类型,而实际类型是子类类型的对象
    比如,
    Car aCar=new Bmw();
    Bmw aBmw=(Bmw)aCar;
      

  2.   

     Car car = new Bmw(); // 创建car对象  这样嘛
     
      

  3.   

    向下转型才需强转,向上转型是自动完成的。car不是BMW类型,所以强制转换出错。下面的例子强制转换不会出错。Car car=new Bmw();
    Bmw bm=(Bmw)car;
      

  4.   

    假设Car类是父亲 ,Bmw是儿子,那么
    Bmw aBmw=(Bmw)aCar;
    这么做就是让父亲和儿子成为同一个辈份,也就是让儿子看见父亲就叫哥一样。
      

  5.   

    java基础呀,好好想想。父类是不能强转为子类的。
      

  6.   

    照楼主这个思想,那么所存在的每个类都继承自OBject超类,其不是相互之间都可以转换啦??那不乱套