[Scala] sealed modifier
Scala에는 sealed
라는 독특한 modifier가 있다.
위와 같은 방식으로 사용하는데, sealed
라는 modifier를 붙인 class는 선언된 파일 안에서만 상속받을 수 있다. 선언된 파일이 아닌 다른 파일에서는 사용할 수는 있지만 상속받으려고 한다면 컴파일 에러가 발생한다. 다만, sealed
의 자식은 sealed
가 아니어서 주로 final
modifier와 함께 쓰인다.
Scala library 중 sealed
modifier를 사용하는 대표적인 예제는 Option
과 Try
다.
Option
은 Some
과 None
2개의 자식이 있고, Try
는 Success
와 Failure
2개의 자식을 가지고 있다.
Option
과 Try
는 sealed
로 선언되어 같은 파일에서 선언한 Some
, None
과 Success
, Failure
이외에는 자식을 가지지 못하게 하고, Some
, Success
, Failure
는 final class
로 None
은 상속할 수 없는 object로 선언하여 사용자가 추가로 상속받을 방법을 막아놓았다.
댓글
댓글 쓰기