[3단원]상속과 인터페이스

상속에서의 클래스 간의 관계 정의법

  • 정의
    • is a kind of 관계를 나타낸다
    • 하위 클래스가 상위 클래스의 특정 유형 또는 분류임을 의미함
  • 예시
    • 고래는 동물의 한 분류이다
    • 고래 ⇒ 하위클래스
    • 동물 ⇒ 상위클래스

인터페이스에서의 클래스 간의 관계 정의법

  • 정의
    • is able to 관계를 나타낸다.
    • 클래스가 인터페이스에 정의된 특성 행동 또는 기능을 수행할 수 있음을 나타냄
  • 예시
    • 고래는 헤엄칠 수 있음
    • 고래 클래스가 헤엄치다 기능을 수행할 수 있음을 나타낸다.

자바 API 예시

  • 인터페이스는 클래스가 수행 할 수 있는 특정 기능을 나타내며, be able to 형식으로 명명함
  • Searializable
    • 직렬화할 수 있는
  • Cloneable
    • 복제할 수 있는

상위 클래스와 인터페이스 특성

  • 상위 클래스
    • 하위 클래스에 특성(속성 + 메서드) 을 상속해준다
  • 인터페이스
    • 클래스에 특정 기능의 구현을 강제

상속과 인터페이스의 적절한 사용은 어디까지 가능한가

  • 상위 클래스
    • 많은 특성을 물려줄수 있을 수록 좋을 수 있다.
  • 인터페이스
    • 구현을 강제할 메서드의 개수가 적을 수록 좋음

객체 지향 설계 원칙과 연관성

  • LSP ( 리스코드 치환 원칙 )
    • 상위 클래스의 특성이 풍성할 수록 좋은 이유는 해당 원칙에 기반
  • ISP ( 인터페이스 분할 원칙 )
    • 인터페이스에 메서드가 적을수록 좋은 이유는 해당 원칙에 기반한다.
LSP
  • 정의
    • 서브 타입은 언제나 슈퍼타입과 교체될 수 있어야 한다.
    • 하위 클래스는 상위 클래스의 역할을 완벽하게 대체 할 수 있어야함.
  • 상속과 연관성
    • 서브 클래스는 슈퍼 클래스의 기능을 확장하거나 수정 가능하다.
    • 하지만, 슈퍼 클래스의 기본 기능이나 특성을 손상시킬 수 없다.

ISP

  • 정의
    • 클래스는 자신이 사용하지 않는 인터페이스에 의존하면 안된다.
    • 너무 많은 기능이 담긴 인터페이스 보다 필요한 기능만 포함한 여러 개의 인터페이스를 사용하는 것이 좋음
  • 인터페이스와 연관성
    • 기본 헤엄과 날수있는 기능이 전부 있는 인터페이스가 존재시
    • 헤엄칠 수 있는날 수 있는 인터페이스를 분리하면,
    • 펭귄 클래스는 헤엄칠 수 있는 인터페이스만을 구현하면 되므로, 불필요한 메서드 구현을 피할 수 있음

상속에서의 UML 표기법

그렇다고 하네요


Uploaded by N2T