下面是代码示例:主要实现方式关键字by

package com.lyc.myeight.interfaces

interface ZuFang {
        fun KanFang()
        fun DingJia(int: Int)
        fun QianHeTong()
}
package com.lyc.myeight

import android.nfc.Tag
import android.util.Log
import com.lyc.myeight.interfaces.ZuFang

class Fangdong:ZuFang {
    companion object{
        val TAG="testlyc"
    }
    override fun KanFang() {
        Log.d(TAG,"kan")
    }

    override fun DingJia(int: Int) {
        Log.d(TAG,"一个月租金: $int")
    }

    override fun QianHeTong() {
        Log.d(TAG,"签合同")
    }
}
package com.lyc.myeight

import android.util.Log
import com.lyc.myeight.interfaces.ZuFang

class ZhongJie(fangdong: Fangdong):ZuFang by fangdong{
    var mtip=0
    private val mfabfdong=fangdong

    fun give(tip:Int){
        mtip=tip
    }

    override fun KanFang() {
        if (mtip>200){
            mfabfdong.KanFang()
        }else{
            Log.d("testlyc","没有消费不给看房")
        }
    }
}
val zhongJie = ZhongJie(Fangdong())

zhongJie.KanFang()
zhongJie.give(3000)
zhongJie.KanFang()
zhongJie.DingJia(500)
zhongJie.QianHeTong()

运行结果:

2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: 没有消费不给看房
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: kan
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: 一个月租金: 500
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: 签合同

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐