Spa*_*son 7 inheritance singleton kotlin
我有一个对象声明( object A : BaseClass) 并且我想创建另一个B继承自A隐式类的对象声明。BaseClass是一个类而不是一个接口。在 Kotlin 中可能吗?
您可以使用委托。请注意,您只能通过接口进行委托,因此您需要使用需要委托的方法子集创建一个接口。
interface Iface {
fun doStuff()
}
object BaseObject: Iface {
override fun doStuff() { }
}
class BaseClass: Iface {
override fun doStuff() { }
}
object ExtendedObjectDelegatingToObject: Iface by BaseObject {
fun doSomethingElse() { }
}
object ExtendedObjectDelegatingToClass: Iface by BaseClass() {
fun doSomethingElse() { }
}
class ExtendedClassDelegatingToObject: Iface by BaseObject {
fun doSomethingElse() { }
}
class ExtendedClassDelegatingToClass: Iface by BaseClass() {
fun doSomethingElse() { }
}
fun example() {
BaseObject.doStuff() // can call doStuff from BaseObject
ExtendedObjectDelegatingToObject.doStuff() // can call doStuff from ExtendedObject
ExtendedObjectDelegatingToObject.doSomethingElse() // can also call additional methods on ExtendedObject
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2213 次 |
| 最近记录: |