투케이2K

140. (kotlin/코틀린) sealed class 추상 클래스 선언 및 data class 하위 클래스 생성 실시 본문

Kotlin

140. (kotlin/코틀린) sealed class 추상 클래스 선언 및 data class 하위 클래스 생성 실시

투케이2K 2022. 12. 28. 21:21

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

// -----------------------------------
// [요약 설명]
// -----------------------------------
// 1. sealed class 는 자기 자신이 추상 클래스이고, 자신을 상속 받는 여러 서브 클래스 들을 가질 수 있습니다
// 2. sealed class 는 enum 클래스와 달리 상속을 지원합니다 
// 3. sealed class 는 상속받는 서브 클래스의 종류를 제한할 수 있습니다 
// 4. sealed class 의 sub class 들은 반드시 같은 파일 내에 선언되어야 합니다 
// 5. sealed class 는 기본적으로 abstract class 입니다
// 6. sealed class 는 private 생성자만 가집니다
// 7. sealed class 의 하위 클래스는 class, data class, object class 로 정의할 수 있습니다
// -----------------------------------
 

// -----------------------------------
// [클래스 생성 실시]
// -----------------------------------
sealed class Color {
    
    data class Red(val r: Int, val g: Int, val b: Int) : Color()
    data class Green(val r: Int, val g: Int, val b: Int) : Color()
    data class Blue(val r: Int, val g: Int, val b: Int) : Color()
    
}


// -----------------------------------
// [메인 동작 실시]
// -----------------------------------
fun main() {

    val color: Color = Color.Red(255, 0, 0) // Color 클래스 생성
    println(color)
    
    when (color){
        is Color.Red -> println("Red 입니다")
        is Color.Green -> println("Green 입니다")
        is Color.Blue -> println("Blue 입니다")
    }
}


// -----------------------------------
// [결과 출력]
// -----------------------------------
// Red(r=255, g=0, b=0)
// Red 입니다
// -----------------------------------

 

반응형
Comments