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()
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值