Kotlinで継承可能なクラスを定義するには


最近業務でもKotlinに触れる機会が多いです。
コードを書く時に通常のクラスを定義する事が多くて、継承可能なクラスを書くことがあまりないので、Kotlinで継承可能なクラスにする場合のメモ。

class ParentActivity : AppCompatActivity() {
        ....実装
}

上記のようなクラスを元に、各クラスを定義しようとすると、ビルドエラーになります。
理由はfinal Classとして扱われるから。
継承可能なクラスにしたい場合は、以下のように open と付ける必要がありました。

open class ParentActivity : AppCompatActivity() {
        ....実装
}

けど、これだと警告が取り除けない。Javaのときにはなかった変更点として、抽象クラスならきちんと abstract classとして宣言が必要でした。

abstract class ParentActivity : AppCompatActivity() {
        ....実装
}

こうすると、明示していなくても open扱いとなる模様。
Kotlin奥が深いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です