当前位置: 首页 > 知识库问答 >
问题:

如何同时获得对类字段的静态访问和实例访问

公羊学义
2023-03-14

假设我有一个抽象超类a。该类具有属性抽象值谓词:(ModelClass)->Boolean

    null

我怎么能这么做。

共有1个答案

欧金鹏
2023-03-14

你的类需要抽象吗?下面的代码也许会有用:

open class MyClass {
    companion object myCompanion {
        val myStatic = "MyClass"
    }
    open val myStatic = myCompanion.myStatic
}

class MySubClass : MyClass() {
    companion object myCompanionSubClass {
        val myStatic = "MySubClass"
    }
    override var myStatic = myCompanionSubClass.myStatic
}

fun main() {
    println(MyClass.myStatic)
    val t = MyClass()
    println(t.myStatic)

    println(MySubClass.myStatic)
    val subClass = MySubClass()
    println(subClass.myStatic)
}

在此代码中,您可以定义一个静态属性,并从类或任何实例中使用它。也可以在子类中重写属性并以相同的方式使用它。

 类似资料:
  • 正如他们所说,System是最终的类,它将类型外的PrintStream作为字段成员,println是PrintStream类中的方法。 我创建了一个类,其中静态字段no的类型为,只想访问Number类的方法,但它抛出了 对于UseNumber类

  • 问题内容: 在ES6中,给出以下示例: 如何访问Color.mainDark(静态字段)? 问题答案: 您可以按期望的方式访问它,但是,如果我记得使用Babel并立即导出类时存在一些问题,因此 如果 遇到问题,请在定义类后导出: 您可以在玛丽安(Marian)对类似问题的回答中了解有关巴别塔(Babel)问题的更多信息,该问题据说已在巴别塔(Babel)6.2.1中修复。

  • 问题内容: 我有一个类,该类具有一个命名的字段(它与我的类具有相同的类型并具有修饰符): 在该类中,我定义了一个名为的方法,该方法具有一个类型为type的参数。我想知道为什么我可以直接访问实例字段?我的意思是该字段是,不是通过实例受害者无法访问的吗? 问题答案: 隐私不是针对每个实例的,而是针对每个班级的。 该类可以访问所有实例的私有字段。 例如,该方法可以将o(如果适用)转换为相同类型,并将其私

  • 问题内容: 这是指帖子 ..无法回复或评论任何这样创建的新帖子。为什么是我的 发出警告-应该以静态方式访问静态字段MyUnits.MILLSECONDS吗?谢谢。 问题答案: 因为当您访问静态字段时,您应该在类(或本例中为枚举)上执行此操作。如 不在实例中 编辑 要解决 为什么这样 的问题:在Java中,当您将声明为时,就是说它是类的成员,而不是对象(因此为什么只有一个)。因此,在对象上访问它是没

  • 下面是静态嵌套类

  • 问题内容: 我有一堂课,还有另一个内部课: 问题答案: 从其他答案中可以看出,您将需要一个非静态内部类来执行此操作。 如果您确实不能使内部类成为非静态类,则可以在外部类中添加所需的getter和setter方法,并通过在内部静态类内部创建外部类的实例来访问它们: