kotlin 类的委托

fun main(arg: Array<String>) {
    val baseImpl = baseImpl(2)
    demo(baseImpl).printL()
}
interface base{
    fun printL()
}
class baseImpl(val x:Int):base{
    override fun printL() {
        print(x)
    }

}
class demo(b:base) :base by b{//by关键字将base类的printL函数委托给了一个对象
    fun getName():String{//自己的方法
        return "name"
    }
}

可以看出:demo类使用by关键字将base类的printL函数委托给了一个对象.该对象需要通过demo类的主构造器传入,而且该对象类必须实现base接口!

猜你喜欢

转载自www.cnblogs.com/loaderman/p/10142763.html