카테고리 없음

코틀린 : Sealed Class

ChloeLee 2020. 10. 19. 21:35

Sealed 라는 예약어와 함께 만드는 클래스

=> 열거형 상수 처럼 입력 되는 데이터를 제한 하기 위한 목적으로 사용

 

열거형 상수는 각 이름에 값을 대입하지만 sealed class 는 자신의 하위 클래스를 설정

 

인스턴스 생성을 못함, 생성자가 private 이라서 외부에서 생성자를 호출할 수 없기 때문에 인스턴스 생성을 못함

변수를 선언하면 하위 클래스의 인스턴스만 대입 할 수 있다.

 

sealed class Drawing() {

   class 이름 (매개 변수 나열 ) : Drawing()

   class 이름2 (매개 변수 나열 ) : Drawing()

 

}

 

val drawing: Drawing= Drawing의 하위 클래스인 이름1 이나, 이름2 인스턴스만 가능

Drawing 인스턴스를 생성할 수 없기 때문에 Drawing() 도 안됨

enum 도 값의 제한이 목적이지만 일반적으로 값이 정수

abstract class 는 목적이 일반적으로 기능 확장

interface 는 목적이 반드시 구현해야 하는 메소드의 구현

sealed 는 값의 제한이 목적인데 정수가 아니고 인스턴스가 값으로 사용이 됩니다.