Kotlin

クラスの継承 - Kotlin入門

2021年3月6日

ここでは、クラスの継承についてまとめます。

関連

クラスについては、「オブジェクトとクラス」にまとめています。

 

クラスの継承

クラスは、別のクラスを継承(inheritance)することで、既存クラスの機能を拡張できます。

例えば、人物を表す Person クラスを継承して、Student クラスを作るとします。

Kotlin でクラスを継承するには、自身のクラスの直後に「:」記号を付けて、継承したいクラス名とコンストラクタを記述します。

 

この時、継承元クラス(Person)のことをスーパークラス(superclass)と呼びます。
継承先クラス(Student)のことをサブクラス(subclass)と呼びます。

 

Kotlin は、デフォルトではクラスを継承することができません。
クラスを継承させるには、open 修飾子を付ける必要があります。

 

例の Student クラスは、以下のように使います。

継承することで、スーパークラスのメンバをサブクラスでも使えるようになります。

例では、スーパークラスの nameage、そして showMyself()
サブクラスでも使用できていることが分かります。

 

クラスメンバのオーバライド

スーパークラスから受け継いだメンバを、サブクラスが上書きすることが可能です。
これをオーバライド(override)と言います。

クラスの継承と同じように、オーバライドもデフォルトでは禁止されています。
そのため、メンバには修飾子 open を付けます。

クラス Person のメソッド showMyself() に修飾子 open を付け、オーバライド可能にしました。
オーバライドする際には、修飾子 override を付けて上書きします。

サブクラス Student は、以下のように使います。

 

オーバライドした後、スーパクラスの実装をそのまま使いたい場合は、以下のようにします。

 

プロパティもオーバライドすることができます。
クラスやメンバと同様に、openoverride の修飾子を付けるだけです。

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-Kotlin
-, ,