如何使用属性实现抽象getter

ice*_*000 5 kotlin

我有java代码:

public abstract class A {
   abstract int getA()
}
Run Code Online (Sandbox Code Playgroud)

我试过:

class B : A() {
    val a = 0
}
Run Code Online (Sandbox Code Playgroud)

不编译。

class B : A() {
    override val a = 0
}
Run Code Online (Sandbox Code Playgroud)

还是不编译。

class B : A() {
    override val a: Int get () = 1
}
Run Code Online (Sandbox Code Playgroud)

还是不编译。

class B : A() {
    override val a: Int override get () = 1
}
Run Code Online (Sandbox Code Playgroud)

还是不编译。

class B : A() {
    val a: Int override get () = 1
}
Run Code Online (Sandbox Code Playgroud)

他们都没有工作。这是否意味着我只能使用

class B : A() {
    override fun getA() = 1
}
Run Code Online (Sandbox Code Playgroud)

? 我认为最后一个(覆盖方法)很难看。

当你有一个 getter-setter 对时,这可能会更糟。期望使用var属性覆盖 getter-setter 对,但您必须编写两个方法。

ice*_*000 5

根据@Miha_x64 ,

函数只能被函数覆盖。

似乎我正在尝试一些不可能的事情。