【发布时间】:2020-10-17 20:22:11
【问题描述】:
首先我必须做两个接口。两者都有很多实现。然后我需要接口,它将继承自前两个接口的随机实现。 “由车身和发动机制成的汽车”示例。
前两个接口:
interface Carcase {
val aerodynamics: Float
fun getAD(){return aerodynamics}
}
interface Engine {
val power: Int
fun getP(){return power}
}
还有一些他们的实现:
class BMV: Carcase {
override val aerodynamics: Float = 1.0f
}
class Volvo: Carcase {
override val aerodynamics: Float = 1.5f
}
class V1: Engine {
override val power: Int = 10
}
class V3: Engine {
override val power: Int = 20
}
class V5: Engine {
override val power: Int = 30
}
现在接口继承了这两个实现,不管是什么:
// idk if it working or allowed at all
interface Car<S,T>: Carcase, Engine {
fun getSpeed{
return( S.getAD() * T.getP() ) //?????
}
}
因此我想输入类似这样的主代码:
val car1 = Car<BMW, V1>
val car2 = Car<Volvo, V5>
它应该是这样的:
val s1 = car1.getSpeed() // 1.0f * 10
val s2 = car2.getSpeed() // 1.5f * 30
问题:如何正确地进行这种继承?
我可以得到直接答案或一些书籍(在需要的页面上有链接),因为我什至不知道该用谷歌搜索什么。
【问题讨论】:
标签: class kotlin inheritance interface