MST

星途 面试题库

面试题:Java中开闭原则在类设计中的体现

请举例说明在Java类的设计中,如何遵循开闭原则。假设你正在开发一个图形绘制系统,有圆形、矩形等图形类,要求在不修改现有图形类代码的情况下,能够方便地添加新的图形类并实现绘制功能,简述实现思路及关键代码结构。
32.9万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 实现思路
    • 定义一个图形接口Shape,其中包含一个draw方法用于绘制图形。
    • 圆形、矩形等具体图形类实现该接口。
    • 当需要添加新的图形类时,只需要创建一个新的类实现Shape接口即可,无需修改现有图形类的代码。
  2. 关键代码结构
    • 图形接口
public interface Shape {
    void draw();
}
- **圆形类**
public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制圆形");
    }
}
- **矩形类**
public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制矩形");
    }
}
- **添加新图形类(以三角形为例)**
public class Triangle implements Shape {
    @Override
    public void draw() {
        System.out.println("绘制三角形");
    }
}
- **测试代码**
public class Main {
    public static void main(String[] args) {
        Shape circle = new Circle();
        Shape rectangle = new Rectangle();
        Shape triangle = new Triangle();

        circle.draw();
        rectangle.draw();
        triangle.draw();
    }
}