Shape 상속해서 하는거 맞잖아 인터페이스랑 추상클래스랑 별차이 없는데?



OCP (Open/Closed Principle) - 개방/폐쇄 원칙

기존 코드를 수정하지 않고도 새로운 기능을 추가할 수 있도록 설계되어야 합니다.

java

Copy code

// Bad example (violating OCP)

class Shape {

    void draw() {

        // draw shape

    }

}


class Circle extends Shape {

    void draw() {

        // draw circle

    }

}


// Adding a new shape requires modifying existing code


// Good example (following OCP)

interface Shape {

    void draw();

}


class Circle implements Shape {

    void draw() {

        // draw circle

    }

}


class Rectangle implements Shape {

    void draw() {

        // draw rectangle

    }

}