kotlin的代理和委托

其实主要是思想就是,定义一个接口,比如Person,里面有一个抽象方法walk()。然后有一个类比如Man实现了这个接口,但是不想重写想写抽象方法walk,所以就让另一个类,比如Father来重写这个抽象方法,而Father也要实现这个接口。下面是示例代码。

  1. 定义一个接口Person
interface Person {
    fun walk()
}
  1. 定义一个类Father,并且实现Person接口
class Father : Person {
    override fun walk() {
        println("父亲散步")
    }
}
  1. 定义一个类Man,并且实现Person接口,但是Man不想重写walk,但是使用Man也想调用walk方法,就通过Father来调用Walk方法,通过by关键字实现
class Man(name: String) : Person by Father() {
    var mName: String = name
}
  1. 调用代码,这样man也能调用walk方法,但是执行结果是 父亲散步
fun main(array: Array<String>) {
 var man: Man = Man("张三")
 man.walk()
}
posted @ 2019-08-21 14:48  我的网名  阅读(43)  评论(0)    收藏  举报