/** * 测试类:演示多态性 * 通过 drawShape 方法调用不同子类的 draw() 方法 */ public class TestDrawShape { /** * 通用绘制方法:接收任意 Shape 类型的对象 * 利用多态性,自动调用对应子类的 draw() 方法 * @param s Shape 类型的参数 */ public static void drawShape(Shape s) { s.draw(); } /** * 主方法:程序入口 * @param args 命令行参数 */ public static void main(String[] args) { System.out.println("=== 图形绘制测试 ===\n"); // 1. 创建子类对象 Circle circle = new Circle(5.0); Rectangle rectangle = new Rectangle(4.0, 6.0); // 2. 直接调用 draw() 方法 System.out.println("--- 直接调用 draw() ---"); circle.draw(); rectangle.draw(); // 3. 通过 drawShape() 方法调用(体现多态性) System.out.println("\n--- 通过 drawShape() 方法调用 ---"); drawShape(circle); drawShape(rectangle); // 4. 使用父类引用指向子类对象(多态性的典型应用) System.out.println("\n--- 父类引用指向子类对象 ---"); Shape shape1 = new Circle(3.0); Shape shape2 = new Rectangle(2.0, 8.0); drawShape(shape1); drawShape(shape2); System.out.println("\n=== 测试完成 ==="); } }