리스코프 치환 원칙 (Liskov Substitution Principle)

dogit·2021년 7월 10일
0

CS knowledge

목록 보기
3/8
post-thumbnail

자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙.
즉, 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야 한다.

이 원칙이 이루어 지기 위해서는 부모 클래스의 속성과 메서드를 자식 클래스의 속성과 메서드가 그대로 따라가야 한다는 것이다.
이것이 문제가 되는 경우는 자식 클래스가 오버라이딩을 잘못 할때 생길 수 있다.
오버라이딩을 잘못 하는 경우는 크게 두가지가 있는데,
첫번째는 자식 클래스가 부모 클래스의 변수 타입을 바꿔 메소드의 매겨변수 혹슨 리턴값의 타입의 갯수를 바꾸는것.
두번째는 자식 클래스가 부모 클래스의 의도와 다르게 메소드를 오버라이딩 하는 경우이다.
위의 두 경우 모두 부모클래스를 상속받았지만 원하는 결과와는 다른 결과를 도출하게 되는 원인이라 할 수 있다.

결론은 리스코프 치환 원칙 또한 지켜지지 않으면 다형성에 기반한 개방 폐쇄원칙 또한 무시하게 되고 기능 확장을 위해 더 많은 부분을 수정하게된다.

profile
느리더라도 꾸준하게

0개의 댓글