https://kotlinlang.org/docs/nested-classes.html
인터페이스나 클래스 내부에 중첩해서 인터페이스나 클래스를 선언 할 수 있다.
interface OuterInterface {
class InnterClass
interface InnerInterface
}
class OuterClass {
class InnerClass
interface InnerInterface
}
Inner classes
중첩 클래스는 inner 로 표시되고, outer 클래스의 멤버로 접근 가능하다.
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}
}
fun main() {
println(Outer().Inner().foo())
// 1
}
익명 내부 클래스 (Anonymous inner classes)
object 표현식을 이용해서 익명 내부 클래스의 인스턴스를 생성 할 수 있다.
interface SampleInterface {
fun hello()
fun hello2()
}
fun main() {
executeHello(object: SampleInterface {
override fun hello() {
println("Hello1")
}
override fun hello2() {
println("Hello2")
}
})
}
반응형
'Kotlin' 카테고리의 다른 글
Kotlin - 인라인 값 클래스 (inline value classes) (0) | 2024.03.05 |
---|---|
Kotlin - Enum 클래스 (1) | 2024.02.17 |
Kotlin - 봉인 클래스와 인터페이스 (Sealed classes and interfaces) (0) | 2024.02.05 |
Spring boot 3.x (Kotlin), QueryDSL 사용 설정 - Gradle(Kotlin) (1) | 2024.02.01 |
Kotlin - 데이터 클래스(Data class) (0) | 2024.02.01 |