我有一个班,测量
package robokt.measurement
abstract class Measurement : Number() {
/**
* The abbreviation for this unit of measurement
*/
abstract val units: String
/**
* The abbreviation for this unit of measurement
*/
abstract val value: Number
}
如果有其他类实现测量,我如何实现 unaryMinus()
操作员的乐趣,例如英寸:
package robokt.measurement.length
class Inches(override val value: Number) : Length() {
override fun toCentimeters() = Centimeters(toDouble() * 2.54)
override fun toFeet() = Feet(toDouble() / 12)
override fun toInches() = this
override fun toMeters() = Meters(toDouble() * 0.0254)
override val units: String = "in"
}
Length是一个扩展Measurement的简单抽象类 .
我想 -Inches(5)
返回 Inches(-5)
,但对于我创建的任何其他类都有,例如 -Degrees(30)
返回 Degrees(-30)
. 这有可能吗?我尝试过泛型,最终成了死路一条 .
1 回答
如果您使Measurement可以克隆,则可以克隆它并将(LOL)转换回Measurement