2017-06-11 6 views
1

と抽象ゲッターを実装するためにはどのようにJavaコードを持っています。プロパティ

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 
} 

?私は最後の方法(方法をオーバーライド)は醜いと思います。

これは、ゲッターとセッターのペアがあると悪化する可能性があります。 varプロパティでゲッターセッターペアをオーバーライドすることが期待されていますが、2つのメソッドを記述する必要があります。

+0

'override val a = 0'が機能するはずです。エラーメッセージとは何ですか? –

+0

[画像を参照](https://user-images.githubusercontent.com/16398479/27009722-ec3dfd00-4e5a-11e7-8adf-cdb46995efb0.png) P.S. 'fun fun getA()= 1'が機能するので、彼らは同じパッケージに入っていると約束します。 – ice1000

+0

@EugenPechanec私はそれを自分で確認しました。エラーは "'Aは何も無効にしていません"、これはまったく同じ名前( 'getA')のメソッドをコンパイルする必要があるので、奇妙に思えます。 – GiantTree

答えて

1

はMiha_x64 @によると、

機能は機能のみで上書きすることができます。

私が不可能なことを試していたようです。

関連する問題