소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현하는 것이다.개방-폐쇄 원칙이 잘 적용되면, 기능을 추가하거나 변경해야 할 때 이미 제대로 동작하고 있던 원래 코드를 변경하지 않아도, 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능합니다. 만약 이 원칙을 지키지 않으면 어떤일이 발생하는지 코드로 먼저 보여드리겠습니다. class Car{ String name; String brand; public Car(String name, String brand) { this.name = name; this.brand = brand; } } public class ..