我正在尝试创建一个类,在该类中可以对继承自它的类执行通用操作。我曾尝试使用密封类、内联函数但没有成功,希望有人能对此提供一些见解。
示例
class Base {
fun add // does the operation
}
data class A(val a: Int, val b: Int) : Base
data class B(val c: Int, val d: Int) : Base
val example = A(1,2)
example.add(A(3,4))
println(example)
// A(4,6)
val example2 = B(5,6)
example2.add(B(7,8))
println(example2)
// B(12, 14)
答案 0 :(得分:0)
您正在寻找的是自引用泛型。
abstract class Base<B : Base<B>> {
abstract fun add(other: B): B
}
data class A(...) : Base<A>
data class B(...) : Base<B>