Javaの継承2

オリジナルリンク: http://www.cnblogs.com/Tom-jerry1/p/10709699.html

1.なぜ使用の継承

継承と呼ばれる新しいクラスの既存のクラスから派生しました。

その他の株式クラスように、あなたはクラスでこれらの共通の特徴および行為を置くことができ、別のクラスに共通の特徴および行為があるかもしれません。

これは、一般的なクラスを定義して、他の特定のクラスの複数に展開することが可能であり、これらの特定のクラスは、機能や一般的な操作クラスを継承します。

継承は、保守が容易、重複を避けるため、理解しやすいJavaソフトウェアの再利用を達成するための重要な手段です。

2、親クラスとサブクラス

クラスA、クラスBまたはクラス自己拡張から派生したクラスB、クラスBがクラスAを継承する場合、

 

また、スーパークラス、基底クラスとして知られている「親」と呼ばれるクラス、。

 

クラスBはまた、サブクラス、拡張クラス、派生クラスとして知られ、「サブクラス」と呼ばれています。

サブクラスは、データフィールドとメソッドが親クラスからアクセスすることができる継承する、新しい方法及び新しいデータフィールドを追加してもよいです。

継承構文の定義:

修飾子クラスのサブクラス名が拡張し、親クラス名を    

たとえば:Shapeクラスは、親クラス、サブクラスすることができますCircleクラス、Rectangleクラス、クラストライアングル、などです。

継承されたポイントに注意してください。

  •  クラスは親クラスのサブセットではありません、サブクラスでは、一般的に、親クラスのデータフィールドやメソッドよりも多く含まれています。
  • 親クラスのサブクラス内のプライベートデータフィールドが表示されていない、彼らは、サブクラスで直接使用することはできません。
  • 継承は関係モデル「である」、そこに親とそのサブクラスの間の関係の「A」でなければならない、または継承を使用することはできませんです。
    しかし、それは関係すべて継承しなければなりません「である」ではありません。例えば、正方形は長方形であるが、正方形、長方形の拡張子から何かを得ることができないので、広場クラスは、Rectangleクラスを継承して任せることはできません。広場には、正しい継承クラス継承Shapeクラスであります
  • Javaは単一継承のみを(すなわち、サブクラスが唯一の直接の親を持つことができます)、C ++は多重継承することができます(サブクラスが複数の直接の親を持つすなわち)ことができます。

3、superキーワード

その親クラスのスーパークラス表示。スーパーを使用することができます。

  • 親クラスのコンストラクタを呼び出します。
  • (サブクラスがオーバーライドした場合、親クラス)メソッド呼び出しの親クラス。
  • 親クラス・データ・フィールドへのアクセス(例えば、使用することができるが、そのような使用は必須ではありません)。

親クラスのコンストラクタ構文を呼び出します。

スーパー(); またはスーパー(パラメータリスト);  

   

注意:superステートメントは、最初の文のコンストラクタサブクラスでなければなりません。サブクラスで親クラスのコンストラクタの名前を使用して、親クラスのコンストラクタを呼び出すことではありません。親クラスのコンストラクタは、サブクラスによって継承されません。最初のステートメントとして、サブクラスのコンストラクタ、親クラスのコンストラクタを呼び出すための唯一の方法はがない場合、サブクラス明示的に呼び出し、コンパイラ自動的にスーパー()、superキーワードを使用することです。このコンストラクタは、チェーンを形成します。

静的メソッドは、superキーワードを使用することはできません。

親クラスのメソッドの構文を呼び出します。

スーパー。メソッド名(パラメータリスト);

メソッドが継承されている場合は、呼び出すためにスーパーを使用する必要はありません、あなたは直接呼び出すことができます。サブクラスは親クラスのメソッドをオーバーライドしたり上書きした場合でも、唯一の方法は、親クラスをサブクラスがスーパーを使用することができますと呼ばれて上書きされます。

4、このキーワード

このキーワードは、現在のオブジェクトを表します。それはのために使用することができます。

 

  • 現在のクラスのコンストラクタメソッドを呼び出し、メソッドの最初のステートメントでなければなりません。以下のような:これは();デフォルトのコンストラクタを呼び出します。この(パラメータ);コンストラクタのパラメータバンドを呼び出します。
  • 現在のデータフィールド変数オブジェクトを定義します。可変ドメインは、同じ名前のメソッド内のオブジェクトのローカル変数のときにデータを使用することができます。this.num = NUM​​。this.num可変データフィールドは、現在のオブジェクトNUM、ローカル変数にNUM表現を表します。

ます。https://www.cnblogs.com/Tom-jerry1/p/10709699.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_30438813/article/details/94887294