Class・Object

Java オブジェクト指向の解説・継承

処理を受け継ぐ「継承」とは
以前作成したクラスと似通ったクラスを作成する場合などに
効率よく作成できる為の思想です。

「継承」

  • 親クラス(スーパークラス)を基に子クラス(サブクラス)を定義できる
  • 共通の処理を引き継ぐことができる
  • 子クラス独自の処理を付け加える事ができる(差分だけ記述)
  • 親クラスに宣言が存在するメソッドを、子クラスで上書き宣言することをオーバーライドという
  • final付きクラスは継承できず、final付きメソッドはオーバライド出来ない
  • 継承には、「抽象的・具体的」の関係にあることを定義する役割もある

SPONSORED LINK

オーバーライド(上書きする事)
親クラスを継承して子クラスを宣言する際、
親クラスのメンバを子クラス側で再定義することです。
オーバーライドについての解説はこちらから

継承の基礎


class サブクラス名 extends スーパークラス名 { クラス本体 }

継承を用いて子クラスに宣言されたメンバについて
①親クラスに同じメンバがなければ、そのメンバは「追加」になる
②親クラスに同じメンバがあれば、そのメンバは「上書き変更」される。

継承されたクラスのメソッドの呼び出し
外部からメソッドの呼び出しがある場合は、
外側に有る子インスタン部分のメソッドで対応します。

例えば両方のクラスで
同じメソッドが定義されている(オーバーライド)場合は
外側(子クラス)のメソッドが優先的に動作する為、
内側(親クラス)のメソッドが動くことはありません。

SPONSORED LINK

親インスタン部へのアクセスの方法

親インスタンス部について

  • 親インスタンス部のフィールドを利用:super.フィールド名
  • 親インスタンス部のメソッドを呼び出す:super.メソッド名(引数)

「祖父母」インスタンス部へのアクセスについて
Aクラス(祖父母)、Bクラス(親)、Cクラス(自分)という
3つのクラスが継承関係にある時
インスタンス生成も3重構造になります。

その際に一番外側に相当するCインスタンスについては、
Cクラスのメソッド→Aクラスのインスタンス部には直接アクセスはできない。

  • Cクラスのメソッド→Cクラスのインスタンス:this
  • Cクラスのメソッド→Bクラスのインスタンス:super
  • Cクラスのメソッド→Aクラスのインスタンス:✕

継承とコンストラクタの関係とルール

全てのコンストラクタは、
先頭で必ず親クラスのコンストラクタを
呼び出さなければなりません。

親クラスのコンストラクタの呼び出し

  • super(引数);

SPONSORED LINK

OracleからEclipseに開発主体が移ったJava EE前のページ

Java オブジェクト指向の解説・ポリモフィズム(abstract)次のページ

ピックアップ記事

  1. Java 9が正式リリース
  2. Java入門 JavaプラットフォームやJava言語の仕組み
  3. Java クラスのインスタンス化・初期化とは?

関連記事

  1. Class・Object

    Java オブジェクト指向の解説・ポリモフィズム(abstract)

    ポリモフィズムは多様性を意味します。傾斜によるメソッドのオーバーラ…

  2. Class・Object

    Java プロパティファイル(property)の作成と読み込み、編集方法、配置先の解説

    こちらの記事でプロパティファイル(property)の使い方を応用して…

  3. Class・Object

    Java リスト(list)を分割(一度に処理を行う)し代入する方法を解説

    こちらの記事でリスト(list)を分割(一度に処理を行う)し代入する方…

  4. Class・Object

    Java コンストラクタの使い方と概要

    コンストラクタとは生まれたてのインスタンスの状態を表します。…

  5. Class・Object

    Java プロパティファイルを使ってテキスト(txt)入力ファイルの読み込みとパターンを解説

    こちらの記事でプロパティファイルを使って入力ファイルの読み込みを応用し…

  6. Class・Object

    Java ファイルやディレクトリの存在チェック(exists)とパターンを解説

    こちらの記事でファイルやディレクトリの存在チェック(exists)を応…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Recommended Article

Pickup

  1. 文字列

    Java String型の文字列をint型の数値に変換する方法を解説
  2. News

    脆弱性が多いプログラミング言語、第2位はPHP – 大差で第1位にな…
  3. Cp Engineering

    コンピュータの5大装置(5大機能)やメインメモリとキャシュメモリの違いについて解…
  4. Class・Object

    Java オブジェクト指向の解説・ポリモフィズム(abstract)
  5. Class・Object

    Java コンストラクタの使い方と概要
PAGE TOP

Copyrighted Image