面试题答案
一键面试- 定义抽象图形类:
abstract class Shape { // 抽象方法,用于绘制图形 public abstract void draw(); }
- 定义具体图形子类:
- 圆形子类:
class Circle extends Shape { @Override public void draw() { System.out.println("绘制圆形"); } }
- 矩形子类:
class Rectangle extends Shape { @Override public void draw() { System.out.println("绘制矩形"); } }
- 使用多态来绘制图形:
public class GraphicsSystem { public static void main(String[] args) { // 创建图形数组 Shape[] shapes = new Shape[2]; shapes[0] = new Circle(); shapes[1] = new Rectangle(); // 遍历数组并调用draw方法,体现多态 for (Shape shape : shapes) { shape.draw(); } } }
在上述代码中:
Shape
类是一个抽象类,定义了所有图形都需要实现的draw
抽象方法。Circle
和Rectangle
类继承自Shape
类,并实现了draw
方法,分别绘制圆形和矩形。- 在
GraphicsSystem
类的main
方法中,通过创建不同具体图形类的对象,并将它们存储在Shape
类型的数组中,然后遍历数组调用draw
方法,实现了多态。这样,当需要添加新的图形类型时,比如三角形,只需要创建一个继承自Shape
的Triangle
类并实现draw
方法,在main
方法中添加Triangle
对象到Shape
数组中,而不需要修改原有Circle
和Rectangle
类的代码结构。