Java 継承・オーバーロード・super・this

こんばんは。

 

今日はJavaの継承について書いていきます。

 

Javaでプログラムを書いていると同じようなクラスをいくつも定義しなければならない場面が出てきます。

そんな時に役に立つのが継承です。

 

既存のクラスと似たクラスを定義する時に、同じ部分は共有し、変更点のある部分のみを定義するということができます。

既存のクラスを拡張して新しいクラスを作るための仕組みを「継承」と言います。

 

継承を使ってクラスを定義した時、元になったクラスをスーパークラス、新しく作られたクラスをサブクラスと言います。

 

・継承の定義

public class サブクラス名 extends スーパークラス名{

    クラスの内容

}

 

なお、Javaは複数のサブクラスを持つことは可能ですが、同時に1つのクラスしか継承することができません。

 

Javaでは明示的にクラスを継承していなければ、自動的にObjectクラスを継承します。つまり、全てのクラスはObjectクラスのサブクラスであると言えます。

 

 

次にオーバーライドについてです。

スーパークラスで定義されているメソッドをサブクラスで上書きする仕組みのことをメソッドのオーバーライド(上書き定義)と呼びます。

オーバーライドを行うには、スーパークラスで定義されているメソッドと同じシグニチャ(戻り値、メソッド名、引数)のメソッドをサブクラスに定義するだけです。

 

 

次にsuperキーワードです。

superキーワードはオーバーライドした部分で共通部分があればさらに共通化して呼び出す機能のことです。

 

・superキーワード

スーバークラスのメソッドの呼び出し

    super.スーパークラスのメソッド名

 

スーパークラスのメンバ変数へのアクセス

    super.メンバ変数名

 

 

次にthisキーワードについてです。

superキーワードに対してthisキーワードというものも存在します。

thisは自分自身のオブジェクトを指す参照変数ということができます。

 

メソッド内で明示的にメンバ変数を指す際にthisキーワードを使用します。

 

 

今日はここまでにします。