【发布时间】:2023-03-20 13:45:01
【问题描述】:
我有一个抽象类 A,类 B 和 C 正在扩展。 我想在 A 类中有一个静态变量,我可以从 B 和 C 获取和设置它,以便它们访问共享值。 目前,使用 getter 和 setter 的 B 和 C 都有自己的变量实例。
老实说,我不太在乎实践的好坏,我只是想让它以某种方式发挥作用。
【问题讨论】:
标签: java kotlin inheritance architecture abstract
我有一个抽象类 A,类 B 和 C 正在扩展。 我想在 A 类中有一个静态变量,我可以从 B 和 C 获取和设置它,以便它们访问共享值。 目前,使用 getter 和 setter 的 B 和 C 都有自己的变量实例。
老实说,我不太在乎实践的好坏,我只是想让它以某种方式发挥作用。
【问题讨论】:
标签: java kotlin inheritance architecture abstract
可以使用companion object模拟静态变量:
abstract class A {
companion object {
var staticVariable: Int = 0
}
}
class B : A() {
fun updateStaticVariable() {
staticVariable = 1
}
}
class C : A() {
fun updateStaticVariable() {
staticVariable = 2
}
}
从其他地方访问它:
val sv = A.staticVariable
if (sv == 0) {
//...
}
【讨论】:
class定义之外。