정의
- 서브클래스는 언제나 자신의 기반타입 즉, 슈퍼클래스로 교체될 수 있어야한다.
잘못된 예시 : 아버지와 딸
- 아버지를 슈퍼 클래스를 두고 서브 클래스로 딸을 두는 경우
- 분류도가 아니라, 계층도 혹은 조직도에 가깝다.
아버지 춘향이 = new 딸()
- 아버지가 할 수 있는 일을 딸이 무조건 수행할 수 있는 것이 아니다.
올바른 상속 : 동물과 펭귄
동물 뽀로로 = new 펭귄()
- 리스코프 치환 원칙을 잘 지키는 예시
- 펭귄은 동물의 하위분류
- 동물이 할 수 있는 모든 행위를 펭귄도 할 수 있음.
인터페이스의 중요성
- 명칭과 그 존재로서 → 리스코프 치환 원칙을 지키는데 도움을 줌
AutoCloseable
→ 자동으로 닫을 수 있음
Appendable
→ 덧붙일 수 있음
- 등으로, 어떤 클래스가 특정 인터페이스를 구현할 때, 그 인터페이스가 요구하는 행위를 반드시 구현해야함을 알 수 있음.
그림으로 알아보기
- 서브 클래스는 항상 슈퍼클래스로 치환할 수 있어야한다.
- LSP 의 특성은 OOP 의 특성중 상속을 올바르게 활용하면 자연스럽게 따라옴.
Uploaded by N2T
'자바 > 스프링입문객체지향' 카테고리의 다른 글
[6단원]디자인 패턴 - 프록시 패턴 (0) | 2023.09.15 |
---|---|
[6단원]디자인 패턴 - 데코레이터 패턴 (Decorator Pattern) (0) | 2023.09.15 |
[5단원]5원칙 - ISP (0) | 2023.09.13 |
[5단원]5원칙 - DIP (0) | 2023.09.13 |
[5단원] 객체지향 세계와 SOLID 마무리 (0) | 2023.09.13 |