题目的意思就是在三个子类中,凡是有名字为draw() erase()的函数前面就要叫上@Override实现子类函数对父类相同函数的覆盖
import java.util.*;
class Shape{public void draw(){}
public void erase(){}
}
class Circle extends Shape{
@Override public void draw(){}
@Override public void erase(){}
}
class Square extends Shape{
@Override public void draw(){}
@Override public void erase(){}
}
class Triangle extends Shape{
@Override public void draw(){}
@Override public void erase(){}
}
class randomShapeGenerator {
private Random rand=new Random(47);
public Shape next()
{
switch(rand.nextInt(3))
{
default:
case 0:return new Circle();
case 1:return new Square();
case 2:return new Triangle();
}
}
}
public class Shapes{
private static randomShapeGenerator gen=new randomShapeGenerator();
public static void main(String[] args) {
Shape[] s=new Shape[9];
for(int i=0;i<s.length;i++)
s[i]=gen.next();
for(Shape p:s)
p.draw();
}
}