카테고리 없음
코틀린 : 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 는 값의 제한이 목적인데 정수가 아니고 인스턴스가 값으로 사용이 됩니다.