[Kotlin] 특정 프로퍼티만 상속 안되게 할 수있을까요?

조회수 278회

이미지

안드로이드 스튜디오를 하고 있구요

사진처럼 클래스를 그룹화하여 리스트를 나타내려고합니다.

하나의 그룹에 헤더한개와 그 아래 여러개의 리스트 아이템으로 구성되어있는 형식으로요.

sealed 클래스를 사용하려고 했는데 문제가 좀 있네요.

sealed class GroupedItem(val layoutId : Int = 1) {
    val header: Header = Header() // 서브 클래스에 상속되어 오류가 남.
    val itemList: List<Item> = listOf() // 서브 클래스에 상속되어 오류가 남.

    data class Header(
        val id: String = "",
    ) : GroupedItem(someValue)

    data class Item(
        val id: String = "",
        val set: Int = 1,
    ) : GroupedItem(someValue)
}

그룹화 코드

for (i in 0 until headerNumber) {
    val headerText = "Header $i"
    val header = GroupedItem.Header(headerText)
    val itemList = arrayListOf<GroupedItem.Item>()
    val indexNumber = Random.nextInt(2, 5)
    for (j in 0 until indexNumber) {
        val itemText = "Item $j"
        itemList.add(GroupedItem.Item(itemText))
    }
    val groupedItem = GroupedItem(header, itemList)
    groupedItemList.add(groupedItem)
}

이런식으로 구조화를 하고 싶은데 보시는 코드대로 Header와 ItemList 프로퍼티가

서브클래스에 상속되기때문에 그.. 에러가 납니다.

이경우에 이 두 프로퍼티만 상속 불가능하게 하고 싶은데 방법이 있을까요?

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)