Shape为抽象类,不能创建类的实例
Shape aa=new Shape();是错误的
为什么这句是正确的呢
Shape[] shapes=new Shape[8];

解决方案 »

  1.   

    这句不是声明类的实例. 只是创建了一个类似数组.
    Shape[] shapes=new Shape[8]; 
    shapes[1]=new shapes1()  shapes1必须为继承shapes的类
      

  2.   

    抽象类是指不能类的实例,用abstract关键字。你下面的又不是类的实例,
    Shape[] shapes=new Shape[8]; 是类型数组结贴!
      

  3.   

    这句不是声明类的实例. 只是创建了一个类似数组. 
    Shape[] shapes=new Shape[8]; 
      

  4.   

    Shape[] shapes=new Shape[8]; 
    参看数组声明...shapes中可以存放Shape的子类