[3단원]상속: 재사용 + 확장

위는 잘못된 예시 😮😮

일반적인 상속과의 프로그래밍에서의 차이

  • 일반적인 상속의 개념에서 할아버지 -> 아버지 -> 아들 같은 혈통의 연속성을 흔히들 생각할텐데..
  • OOP 에서는 상속은 이러한 것을 상속이라고 하지 않음

올바른 상속의 이해

  • 동물 은 포유류의 부모나 상위 분류가 아님!!!!!
  • 동물이라는 큰 범주 내에서 포유류와 조류 같은 세부 분류가 있을 뿐임!
  • OOP 에서의 상속은 상위 클래스의 특성을 하위 클래스에서 재사용하고, 필요한 특성을 추가로 확장하는 것을 말함.

오해하기 쉬운 상속의 용어..

  • 클래스의 특성을 상속한다 표현에서 특성 을 누락하고 클래스를 상속한다 라고 오해한다고 합니다.
    • 이 결과 부모- 자식 관계 라는 잘못된 표현이 등장함.
  • 부모와 자식 클래스보다
  • 슈퍼 클래스서브 클래스 라는 용어 혹은
  • 상위 클래스하위 클래스 라는 용어가 좋다

상속관계의 핵심

  • 하위 클래스는 상위 클래스다
    • 하위 클래스가 상위 클래스의 모든 특성과 기능을 물려받았기에, 상위 클래스로서의 역할도 가능하다는 의미
  • 조직도 VS 분류도
    • 조직도
      • 아버지는 할아버지, 아들은 아버지다
      • 딱봐도 틀려먹었다
    • 분류도
      • 포유류는 동물, 고래는 포유류다
      • O.O

리스코프 치환 원칙(LSP)

  • 하위 클래스는 상위 클래스
    • 로버트 C. 마틴이 제시한 SOLID ( 객체 지향 설계원칙 ) 원칙 중 하나인 LSP 와 관련있음
    • 하위 클래스가 상위 클래스를 완벽히 대체 가능해야함

자바에서의 상속

  • 우리가 상속을 사용할 때, extends 라는 키워드를 사용한다.
  • 이는 확장 의 개념이지 절대 Inheritance == 상속 의 개념이 아니다!.


Uploaded by N2T