Java

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

ピックアップ記事

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

関連記事

  1. Java

    Java yyyyMMddからyyyy/MM/ddへ変換して日付判定する方法

    データベースから日付情報A(char長8)の文字列を取得して日付の判定…

  2. Java

    Java オブジェクト指向とは?初心者向けにわかりやすい概要!!

    オブジェクト指向の特徴は開発対象となるシステム化対象領域を、「モノ…

  3. Java

    Javaプログラムの作成とルール

    Java言語でルールに従って、テキストファイルに記述します。プログ…

  4. Java

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

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

  5. Java

    Java 2つのリストデータを結合して日付順/昇順/降順(Timestamp )にソートする方法を解…

    それぞれ別のSQLで取得したListを結合して昇順に並び替える方法を紹…

  6. Java

    Java 未経験者の転職で有利に!プログラミングスクールがオススメな理由は?比較表で解説!

    経済産業省が発表しているように現在でもIT人材が17万人も不足して…

コメント

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

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

Recommended Article

Pickup

  1. News

    JVM上で動く動的言語Groovy、2018年のロードマップは
  2. Java

    Java 文字列を分割後(split)にリスト化(List)する方法も解説
  3. JavaScript

    JavaScriptの仕組み
  4. News

    Javaが更に進化!? 今後の日本生活に貢献する役割を担う!
  5. Java

    Java クラスのインスタンス化・初期化とは?
PAGE TOP

Copyrighted Image