最近業務でもKotlinに触れる機会が多いです。
コードを書く時に通常のクラスを定義する事が多くて、継承可能なクラスを書くことがあまりないので、Kotlinで継承可能なクラスにする場合のメモ。
class ParentActivity : AppCompatActivity() { ....実装 }
上記のようなクラスを元に、各クラスを定義しようとすると、ビルドエラーになります。
理由はfinal Classとして扱われるから。
継承可能なクラスにしたい場合は、以下のように open と付ける必要がありました。
open class ParentActivity : AppCompatActivity() { ....実装 }
けど、これだと警告が取り除けない。Javaのときにはなかった変更点として、抽象クラスならきちんと abstract classとして宣言が必要でした。
abstract class ParentActivity : AppCompatActivity() { ....実装 }
こうすると、明示していなくても open扱いとなる模様。
Kotlin奥が深いです。