라벨이 modifier인 게시물 표시

[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로 선언하여 사용자가 추가로 상속받을 방법을 막아놓았다.