Kotlin의 위임
5515 단어 delegationkotlin
interface Base {
fun print()
}
class BaseImpl(val x:String):Base{
override val msg: String? = x
override fun print(){
println("Printing impl ${msg}}")
}
}
class BaseAnotherImpl():Base{
override val msg: String? = null
override fun print(){
println("Printing Another impl ")
}
}
이 코드를 작성할 필요가 없습니다
//class Derived (val b:Base) :Base{
// override fun print(){
// b.print() // delegating the responsibility of b reference
// }
// }
kotlin은 기본적으로 이 코드를 사용하도록 지원합니다.
class Derived(b:Base):Base by b
fun main(args: Array<String>) {
val b1 = BaseImpl("Hell")
Derived(b1).print()
val b2 = BaseAnotherImpl() // Printing impl Hell
Derived(b2).print() // Printing Another impl
}
위임에 의해 구현된 인터페이스의 재정의 멤버
class Derived(b:Base):Base by b {
override val msg = "2" // can't access this property by b reference
override fun print(){
print("\noverriding print method of interface ")
}
}
// after overiding
val d = Derived(b1)
d.print() // overriding print method of interface
print(d.msg) // 2
원본 게시물sanjayprajapat.hashnode.dev
Reference
이 문제에 관하여(Kotlin의 위임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sanjayprajapat/delegation-in-kotlin-23gl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)