Javaの基礎学習 - 継承の簡単なまとめ
コードリファレンス: Javaの基礎学習ノート - ポリモーフィズム
なぜ継承を導入する必要があるのか?
あるいは、CD や DVD を収納できるメディア ライブラリを作成します。 CD と DVD を 2 つの関連のないクラスにすると、このメディア ライブラリを管理するときに、このメディア ライブラリに追加する別の関数と CD を追加する別の関数を作成する必要があります。他のメディア クラスの場合は、別の追加関数を作成する必要があります。このようなコードはスケーラブルではないと言えます。さらに、CD と DVD には、タイトル、再生時間、コメントなど、多くの類似点があります。このようなプログラムにはコードの重複が多く、コードの重複は不正なコードの表れであると言えます。したがって、それらの親クラスを作成し、その親クラスに同じメンバー変数を追加すると、メディア ライブラリに追加するときに、それらの親クラスを追加する関数を作成するだけで、これらの変数を継承できます。も追加できます。
サブクラスは親クラスから何を継承しますか?
継承は、メンバー変数やメンバー関数を含むすべてを親クラスから取得します。ただし、親クラス内のすべてにアクセスできるわけではないため、親クラスから継承したメンバー変数とメンバー関数のアクセス属性を確認してください。親クラスのメンバー変数がプライベートである場合、サブクラスはそれらの変数に直接アクセスできません。ただし、private には親クラス自体からのみアクセスできるため、親クラスの public 関数を呼び出すことで、サブクラス内のこれらのメンバー変数に間接的にアクセスできます。
さらに、サブクラスは、親クラスから継承するだけでなく、独自のクラス内に独自のメンバー変数や関数を記述することもできます。
アクセスプロパティ
アクセスプロパティ 意味
public 誰にでも公開
private 自分だけがアクセスできる
protected 自分、サブクラス、パッケージ内の他のクラスだけがアクセスできる
デフォルト あなたとパッケージ内の他のクラスだけがアクセスできる
super();
にアクセスするには、親クラスのコンストラクターで構築されたメンバー変数をサブクラスのコンストラクターのパラメーター リストに記述し、 super() を使用して親クラスでこれらを構築する必要があります。変数は親クラスから取得されます。コード例については、ポリモーフィズムのブログ投稿を参照してください。
super(); 内のパラメータは、親クラスのどのコンストラクタが呼び出されるかを決定します。 super() 内のパラメータは、呼び出されるコンストラクタのパラメータと同じです。
デフォルトモード (サブクラスコンストラクターに super(); がない場合) では、親クラスにパラメーターのないコンストラクターがデフォルトで呼び出されます。親クラスにそのようなコンストラクターがない場合、Eclipse はエラー。
Override
サブクラスと親クラスに同名の関数がある場合、サブクラスの関数は親クラスから継承した同名の関数をオーバーライド(オーバーライド)するため、親クラスから派生します。 class その関数は非表示になり、機能しません。ただし、親クラスの同じ名前の関数をサブクラスで呼び出したい場合は、 super.function name(); と記述する必要があります。
りー