gpt4 book ai didi

kotlin - 我可以省略在 Kotlin 中不使用的接口(interface)方法吗?

转载 作者:IT老高 更新时间:2023-10-28 13:28:41 26 4
gpt4 key购买 nike

如果我只对 onSee 感兴趣而不关心其他事件怎么办?我至少可以省略没有返回值的方法吗?

interface EventHandler
{
fun onSee()
fun onHear()
fun onSmell()
fun onTouch()
fun onAwake()
fun onSleep()
}

fun addEventHandler(handler:EventHandler)
{

}

fun Main()
{
addEventHandler(object:EventHandler
{
override fun onSee()
{
print("I see.")
}
})
}

最佳答案

当然,这是可能的!你可以在扩展的时候实现一个接口(interface)方法,你所要做的就是在接口(interface)声明中为其他方法提供一个默认实现

interface EventHandler {
fun onSee()
fun onHear() { /* default implementation */ }
fun onSmell(){ /* default implementation */ }
fun onTouch(){ /* default implementation */ }
fun onAwake(){ /* default implementation */ }
fun onSleep(){ /* default implementation */ }
}

现在当你创建这个接口(interface)的实例时,你只需要为 onSee() 方法提供一个强制实现,其余是可选的

如果您不是原界面的作者您可以扩展原始接口(interface)并为您想要的方法提供默认实现

interface OnSeeEventHandler: EventHandler {
override fun onHear() { /* default implementation */ }
override fun onSmell(){ /* default implementation */ }
override fun onTouch(){ /* default implementation */ }
override fun onAwake(){ /* default implementation */ }
override fun onSleep(){ /* default implementation */ }
}

并使用OnSeeEventHandler只提供onSee方法实现

关于kotlin - 我可以省略在 Kotlin 中不使用的接口(interface)方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47362581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com