如何使用属性实现抽象getter

时间:2017-06-11 08:44:49

标签: kotlin

我有java代码:

public abstract class A {
   abstract int getA()
}

我试过了:

class B : A() {
    val a = 0
}

不编译。

class B : A() {
    override val a = 0
}

仍然无法编译。

class B : A() {
    override val a: Int get () = 1
}

仍然无法编译。

class B : A() {
    override val a: Int override get () = 1
}

仍然无法编译。

class B : A() {
    val a: Int override get () = 1
}

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

class B : A() {
    override fun getA() = 1
}

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

当你有一个getter-setter对时,这可能会更糟。它应该覆盖具有var属性的getter-setter对,但你必须编写两个方法。

1 个答案:

答案 0 :(得分:1)

根据@ Miha_x64,

  

只能使用函数覆盖函数。

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