[kotlin] 코틀린 sealed 클래스의 하위 클래스 확장 방법
코틀린에서는 sealed
클래스를 사용하여 계층 구조를 만들 수 있습니다. sealed
클래스는 특정 클래스와 그 클래스의 하위 클래스들을 한정하는 역할을 합니다.
하위 클래스들에 대해 어떤 동작을 추가하려면, 각 하위 클래스를 확장해야 합니다. 이때 패턴 매칭을 사용하여 각 하위 클래스의 동작을 정의하는 것이 좋은 방법입니다.
아래는 예시 코드입니다.
sealed class Shape {
class Circle(val radius: Int) : Shape()
class Square(val sideLength: Int) : Shape()
}
fun calculateArea(shape: Shape): Double {
return when (shape) {
is Shape.Circle -> 3.14 * shape.radius * shape.radius
is Shape.Square -> (shape.sideLength * shape.sideLength).toDouble()
}
}
위 코드에서는 Shape
클래스를 sealed
클래스로 선언하고, Circle
과 Square
두 하위 클래스를 선언했습니다. 그리고 calculateArea
함수에서 각 하위 클래스의 동작을 정의하였습니다.
이처럼 sealed
클래스와 패턴 매칭을 활용하여 계층 구조를 쉽게 다룰 수 있습니다.
더 자세한 내용은 코틀린 공식 문서를 참고해주세요.