你的出错地方即public static Shape randShape()
这个方法居然定义为Shape类型
必须给它返回一个Shape对象才行
而你方法里面根本就没有return任何东西
如果事实上也不需要返回什么对象,为何不定义为
public static void randShape()  ?
==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收

解决方案 »

  1.   

    很清楚吗.
    missing return statement,即缺少返回语句.
      

  2.   

    要是不返回的话,改成 public static void randShape()
      

  3.   

    public static Shape randShape(){
    //下面不是明确的返回了句柄吗,虽然不是Shape本身,但是它是Shape的子 类啊,为什么不可以呢?这是java编程146思想146页里面的
    switch((int)(Math.random()*3)){
    case 0: return new Circle();
    case 1: return new Square();
    case 2: return new Triangle();
    }
    }这里应该没有错吧,如果有的话请具体指出,谢谢!
      

  4.   

    找到了,将randShape方法作如下修改:
    public static Shape randShape(){
    switch((int)(Math.random()*3)){
                      default :
    case 0: return new Circle();
    case 1: return new Square();
    case 2: return new Triangle();
    }
    }搞定!散分!