public class Hide{
    public static void main(){
    ClassA a2 = new Class B();    }
}
class ClassA {}
class ClassB{
}  ClassA a2 = new Class B();这句代码什么意思?

解决方案 »

  1.   

    ClassA a2 = new Class B();new Class B();//实例化 Class B对象
    然后赋值给 ClassA a2对象
    由于两个Class没有什么关系 所以不能把 B对象强制转换给 A对象 报错
      

  2.   

    错误的,用ClassB的构造方法,创建ClassA的对象,创建不了
    就像买了只母鸡想孵出大鹅一样
      

  3.   


    public class Hide{
        public static void main(String []args){
        ClassA a2 = new Class B();    }
    }
    class ClassA {}
    class ClassB extends ClassA{
    }
    代码打错了,这个才是
      

  4.   


     class Hide{
        public static void main(String []args){
        ClassA a2 = new ClassB();    }
    }
    class ClassA {}
    class ClassB extends ClassA{
    }这个编译通过的了
    ClassA a2 = new ClassB(); 什么意思
      

  5.   

    这个就是由于 B 继承 A     那么 B 的对象可以转换成 A对象  
    但是 A 是不能转换成 B的  
    举个尝试例子  
    正方体 是矩形    但是 矩形 不一定是正方体
    所以如果 如果被定义 成正方体   就可以被视为 矩形~~ 一个道理