You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
65 lines
1.8 KiB
/**
|
|
* 课后练习w5 基础题(必做)
|
|
* 需求:
|
|
* 1. 定义Shape类,包含draw()方法
|
|
* 2. 子类Circle、Rectangle重写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);
|
|
}
|
|
}
|
|
}
|