반응형
클래스 위임
구현 상속에 좋은 대안이 될 입증하고 있으며, 코 틀린은 기본적으로 제로 상용구 코드를 필요로 지원합니다. 클래스
Derived
는 인터페이스에서 상속 받고
Base
모든 public 메서드를 지정된 객체에 위임 할 수 있습니다 .
interface Base {
fun print()
}
class BaseImpl(val x: Int) : Base {
override fun print() { print(x) }
}
class Derived(b: Base) : Base by b
fun main(args: Array<String>) {
val b = BaseImpl(10)
Derived(b).print() // 10 출력
}
이
하여
수퍼 타입 목록에 대한 -clause는
Derived
그것이 나타내는
b
물체 내부에 저장한다
Derived
컴파일러는 모든 방법을 생성
Base
하는 것을 전방
b
.재정의는 예상대로 작동합니다. 컴파일러는
override
위임 객체 의 구현 대신 구현 을 사용합니다 . 우리가 추가한다면
override fun print() { print("abc") }
에
Derived
, 프로그램은 대신 "10"의 "ABC"를 인쇄 할 것이다.
반응형
'프로그래밍 > kotlin' 카테고리의 다른 글
코틀린 - Enum 클래스 (0) | 2021.07.13 |
---|---|
코틀린 - 중첩 클래스 및 내부 클래스 (0) | 2021.07.13 |
코틀린 - 위임 프로퍼티 (0) | 2021.07.13 |
코틀린 - 제네릭 (0) | 2021.04.26 |
코틀린 - sealed 클래스 (0) | 2021.04.26 |