Browse Source

上传文件至 'W5-李思彤-202506050313'

main
lisitong 1 day ago
parent
commit
bdd9357459
  1. 65
      W5-李思彤-202506050313/ShapeTest.java

65
W5-李思彤-202506050313/ShapeTest.java

@ -0,0 +1,65 @@
/**
* 课后练习w5 基础题必做
* 需求
* 1. 定义Shape类包含draw()方法
* 2. 子类CircleRectangle重写draw()方法
* 3. 编写drawShape(Shape s)方法调用其draw()
* 4. 在main方法中测试多态调用
*/
// 父类Shape:定义图形的通用行为
class Shape {
/**
* 绘制图形的方法供子类重写
*/
public void draw() {
System.out.println("绘制通用图形");
}
}
// 子类Circle:继承Shape,重写draw()
class Circle extends Shape {
@Override
public void draw() {
System.out.println("绘制圆形 ⭕");
}
}
// 子类Rectangle:继承Shape,重写draw()
class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("绘制矩形 🟦");
}
}
// 主类:包含工具方法和main测试方法
public class ShapeTest {
/**
* 统一绘制图形的方法体现多态
* @param s 任意Shape类型的图形对象
*/
public static void drawShape(Shape s) {
s.draw(); // 自动调用对应子类的draw()方法
}
public static void main(String[] args) {
// 1. 创建不同图形对象
Shape circle = new Circle();
Shape rectangle = new Rectangle();
Shape shape = new Shape();
// 2. 调用统一方法测试多态
System.out.println("===== 图形绘制测试 =====");
drawShape(shape);
drawShape(circle);
drawShape(rectangle);
// 3. 数组遍历测试(额外补充,体现多态数组用法)
System.out.println("\n===== 数组遍历测试 =====");
Shape[] shapes = {new Circle(), new Rectangle(), new Shape()};
for (Shape s : shapes) {
drawShape(s);
}
}
}
Loading…
Cancel
Save