関連知識のカプセル化、継承


パッケージ:

包装は、外部オブジェクトの直接アクセス内部情報を許可していないが、クラスのメソッドによって提供される内部情報を達成するために、オブジェクト指向、それがオブジェクトの内部に隠されているオブジェクトの状態情報を指すの三つの特徴の一つであります操作やアクセス。
たとえば、次の図は:
彼は何の制限を持っていなかったので、任意の外部の制約なしに、直接割り当てることができ、安全ではありません!
ここに画像を挿入説明
パッケージは、カプセル化された通話を実現するためにgetterメソッドとsetterメソッドを追加しました!図は次のとおりです。


ここに画像を挿入説明ここに画像を挿入説明
ここに画像を挿入説明


継承:

クラスの学生、従業員クラス、およびように:私たちは複数のクラスに書き、あなたが例えばクラスの同じタイプを定義するとき、そのような状況があるでしょう不可避です。クラス変数、いくつかの反復方法。1つまたは2つのクラスは、我々は何の問題を記述していない繰り返した場合、我々はいくつかの新しいクラス、メソッドや変数が再度記述する必要が書き、より多くの悩みまで、この書き込みは、その後、私たちはどのようにコードを考えなければならないことは明らかですそれについて改善されましたか?
私たちは、クラスを定義するためにこれらのクラスを抽出するために、同一のコンテンツを置くことができます。その後、クラスの数とクラスは、後でこの関係を持つ独立した関係を生成し、複数のクラスが別々のクラスや関数は、今、私たちは、継承の概念の導入を見てみましょうという特性を持つことができることができます、だけでなく、私たちの3人が学んだの第2の特徴にオブジェクト指向のアクセスを提供しています。
したがって、我々は、単一のクラスに複数のクラスを抽出し、同じプロパティとメソッドは、その後、より多くのクラスがある限り、クラスがそれを継承するように、これらのプロパティとメソッドを定義することはできません。

注コンストラクタはメンバメソッドは、サブクラスによって継承することはできませんされていないことを
ここに画像を挿入説明
ここに画像を挿入説明サブクラスは、親クラスを拡張するために使用されています!あなたが使用する必要はありません、このメソッド内で親クラスならば、しかし、それは、サブクラスでオーバーライドすることができます!次の図は、このいずれかが書き換えられています。
@Overrideはコメント、注釈の役割であり、プログラマとJVMの外観に。
*
ここに画像を挿入説明
使用スーパー()メソッド:
ここに画像を挿入説明
この場所の詳細ビューがある:
ここに画像を挿入説明名前は「リトル事務局」(ある)showMyselfでクラスの内部。this.nameは、動物の名前であるため、「孟ペット」で、このクラス、super.name内部の猫の「ミミ」()()です。


スーパーこの違い:
ここに画像を挿入説明



ここに画像を挿入説明
ここに画像を挿入説明 ここに画像を挿入説明 あなたがオブジェクトを作成するときに、このオブジェクトは、親クラスを継承する場合は、このプログラムは、ブロックを表し、そして彼らのコンストラクタは、親クラスのコンストラクタを呼び出すだけでなく、を呼び出します。そして、するとき、親クラスのコンストラクタの最初の実装、およびこのオブジェクトのコンストラクタが作成され、実行!


コードブロックの実行順序:213
ここに画像を挿入説明主な機能:
ここに画像を挿入説明実行結果213は
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
、サブクラスのオブジェクトを作成し、親クラスのオブジェクトを作成しませんが、構成は本を初期化するために、親クラスのメンバ変数と呼ばれている:1!
2:サブクラスバイトコードメモリファイルがロードされたときに、サブクラスが拡張メモリに、親、親クラスのバイトコードファイルを見つけに持っています

公開された24元の記事 ウォンの賞賛0 ビュー1206

おすすめ

転載: blog.csdn.net/PiShubing/article/details/104575842