포스트

Abstact class, Sealed class의 차이

Abstract Class vs. Sealed Class

  • 하위 클래스들이 이 클래스를 상속받아 상태를 나타냅니다.
  • 하지만 **abstract class**는 명시적으로 하위 클래스의 수를 제한하지 않기 때문에 새로운 상태 클래스가 추가될 수도 있습니다.
  • sealed class** 는 해당 클래스를 상속받는 하위 클래스가 **동일한 파일 내에서만 정의될 수 있게 제한합니다.
  • 따라서 **상태가 명시적으로 정의되며** 추가 상태 클래스를 허용하지 않아 **안전하고** **서로 배타적(mutually exclusive)** 입니다.

  • sealed class** 는 **명확하게 상태의 범위를 제한** 하며 **상태가 Exhaustive(포괄적)** 합니다.**
  • abstract class는 확장성이 높지만, 상태의 추가 여부를 제어하지 못합니다.


결론: 왠만하면 sealed class를 사용해보는 것이 좋을 것 같다. **

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.