用抽象类和多态的方式实现一个俄罗斯方块的打印思路:
大体思路就是用随机数来获取俄罗斯方框的形状和类型,然后得到一个二维数组int[][]根据二维数组的点坐标在4x4的
表格里打印黑色实心的方格。
1.我们先构建一个RussianShape的抽象类,在抽象类中写一个int[][] getArray的二维数组的抽象方法,
2.在类内部写七个静态内部类并继承外部类RussianShape,在内部类中重写实现int[][] getArray的方法,
不同的内部类代表不同的形状,并通过switch-case打印出相应的类型。
3.然后创建一个返回值类型是RussianShape的outputArray的静态方法,用switch(shape)-case判断应该返回哪个
RussianShape父类的子类,这一步是用多态的实现的。因为抽象类不能直接创建对象,只能用他的子类创建对象。
4.int[][] array = RussianShape.outputArray().getArray();
抽象类直接调用静态子类,子类调用返回值是二维数组的静态方法,然后用二维数组接收这个值。
5.最后也是一个难点,利用三重循环打印俄罗斯方块图形,把array当作形参传进去
1