Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 在kotlin的接口中声明接口对象本身有什么好处_Oop_Kotlin_Interface - Fatal编程技术网

Oop 在kotlin的接口中声明接口对象本身有什么好处

Oop 在kotlin的接口中声明接口对象本身有什么好处,oop,kotlin,interface,Oop,Kotlin,Interface,比如说 接口 interface StateInterface { val variationTypes: List<VariationType> get() = emptyList() object EMPTY : StateInterface } 接口状态接口{ val变量类型:列表 get()=emptyList() 对象为空:StateInterface } 然后它被声明在像这样的actionbean中 open val stateIn

比如说

接口

interface StateInterface {

    val variationTypes: List<VariationType>
        get() = emptyList()

    object EMPTY : StateInterface
}
接口状态接口{
val变量类型:列表
get()=emptyList()
对象为空:StateInterface
}
然后它被声明在像这样的actionbean中

open val stateInterface:stateInterface=stateInterface.EMPTY


它只是创建一个新的接口吗?为什么我们需要这样做?

你不需要那样做

interface StateInterface {

    val variationTypes: List<VariationType>
        get() = emptyList()

}

object EMPTY : StateInterface

此位
open val stateInterface:stateInterface=stateInterface.EMPTY
是对象的属性。它是
打开的
,因此子代实现可以
覆盖它。如果没有,则此属性的值将为
StateInterface.EMPTY

第三个优点可能是,您可以拥有另一个具有自己的空成员的接口,而不会出现名称冲突。
import com.example.StateInterface

val x = StateInterface.EMPTY