티스토리 뷰

반응형

유효한 조합

클래스 수정자의 유효한 조합과 그에 따른 기능은 다음과 같다.

  • Construct ? 인스턴스 생성 가능
  • Extend ? 다른 클래스에 확장(상속) 가능
  • Implement ? 다른 클래스에 구현(인터페이스) 사용 가능
  • Min in ? 다른 클래스에 믹스인 사용 가능
  • Exhaustive ? 포괄성 기능 지원

 

 

 

부적절한 조합

다음은 같이 사용할 수 없는 수정자 조합들이다.

  • base, interface, final - 이 수정자들은 확장과 구현을 제어하기 때문에 상호 배타적이다.
  • sealed, abstract - 둘 다 인스턴스화를 할 수 없으므로 함께 사용하는 것은 중복이다.
  • sealed와 base, interface, final - sealed 타입은 이미 다른 라이브러리에서 믹스인, 확장 또는 구현될 수 없으므로 해당 수정자와 결합하는 것은 중복이다.
  • mixin, abstract - 둘 다 인스턴스화를 할 수 없으므로 함께 사용하는 것은 중복이다.
  • mixin과 interface, final, sealed - 믹스인 또는 믹스인 클래스 선언은 혼합(mix)되어 사용될 목적으로 설계되었으므로 상호 배타적이다.
  • enum과 모든 수정자 - enum 선언은 확장, 구현, 혼합, 인스턴스화 불가이므로 다른 수정자를 적용할 수 없다.

 

반응형
댓글
공지사항