interface SomeInterface {
fun someFunction()
}
class SomeClass(private val someInterface: SomeInterface) {
}
什么意思?据我所知,接口不能实例化对象,如果可以,那么我应该在哪里实现someFunction()
发布于 2020-05-08 15:14:46
您说得对,您不能直接实例化SomeInterface
,但是您可以将接口的实现传递给SomeClass
。通过这种方式,SomeClass
可以使用someFunction()
,但不关心接口的低级实现细节(也称为多态性)。
interface SomeInterface {
fun someFunction()
}
class SomeClass(private val someInterface: SomeInterface) {
fun doSomething() = someInterface.someFunction()
}
class SomeImplementation(): SomeInterface {
override fun someFunction() {
println("did something")
}
}
fun main() {
val someClass = SomeClass(SomeImplementation())
someClass.doSomething()
}
https://stackoverflow.com/questions/61681770
复制相似问题