多态画图 根据用户的要求在控制台打印不同的形状。 1.要求创建形状作为父类,并声明抽象方法:绘画 2.创建矩形和正方形作为子类 3.子类实现绘画的方法,并根据自己的类别画出不同的形状 4.根据用户的控制台输入,定义绘制图案的边长,如是矩形,宽为输入,长是宽的2倍
时间: 2024-05-03 10:17:17 浏览: 24
以下是一个实现上述要求的示例代码:
```java
import java.util.Scanner;
abstract class Shape {
abstract void draw();
}
class Rectangle extends Shape {
private int width;
private int height;
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
@Override
void draw() {
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
class Square extends Shape {
private int sideLength;
public Square(int sideLength) {
this.sideLength = sideLength;
}
@Override
void draw() {
for (int i = 0; i < sideLength; i++) {
for (int j = 0; j < sideLength; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入边长:");
int sideLength = scanner.nextInt();
System.out.println("请选择要绘制的图形(1.矩形 2.正方形):");
int choice = scanner.nextInt();
Shape shape;
if (choice == 1) {
shape = new Rectangle(sideLength, sideLength * 2);
} else {
shape = new Square(sideLength);
}
shape.draw();
}
}
```
运行程序后,用户需要输入边长和要绘制的图形类型,程序根据用户的输入创建相应的对象,并调用对象的 `draw()` 方法绘制图形。
示例运行结果:
```
请输入边长:
5
请选择要绘制的图形(1.矩形 2.正方形):
1
*****
*****
*****
```
```
请输入边长:
4
请选择要绘制的图形(1.矩形 2.正方形):
2
****
****
****
****
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)