首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

此步骤必须返回 Shape 类型的结果

2011-11-30 
此方法必须返回 Shape 类型的结果?importjava.util.RandomclassShape{voiddraw(){}voiderase(){}}classCi

此方法必须返回 Shape 类型的结果?
import   java.util.Random;
class   Shape{
void   draw(){}
void   erase(){}
}

class   Circle   extends   Shape{
void   draw(){
System.out.println( "Circle.draw() ");
}
void   erase(){
System.out.println( "Circle.erase ");
}
}

class   Square   extends   Shape{
void   draw(){
System.out.println( "Square.draw() ");
}
void   erase(){
System.out.println( "Square.erase ");
}
}

class   Triangle   extends   Shape{
void   draw(){
System.out.println( "Triangle.draw() ");
}
void   erase(){
System.out.println( "Triangle.erase ");
}
}

class   RandomShapeGenerator{
private   Random   random   =   new   Random();
public   Shape   next(){//error,此方法必须返回   Shape   类型的结果
switch(random.nextInt(3)){
//default:
case   0:return   new   Circle();
case   1:return   new   Square();
case   2:return   new   Triangle();
}
}
}
public   class   Duotai{
private   static   RandomShapeGenerator   gen   =   new   RandomShapeGenerator();
public   static   void   main(String[]   args){
Shape[]   s   =   new   Shape[4];
for(   int   i   =   0;   i <   s.length;   i++   ){
s[i]   =   gen.next();
for(   int   j   =   0;   j <   s.length;   j++   ){
s[j].draw();
}
}
}
}

[解决办法]
实际返回的类型都是Shape 的子类


[解决办法]
error?
[解决办法]
public Shape next(){//error,此方法必须返回 Shape 类型的结果
switch(random.nextInt(3)){
case 0:return new Circle();
case 1:return new Square();
case 2:return new Triangle();
default: return new Shape();
}

热点排行