例を使用したJavaOOPの継承

内容継承とは?

継承は、あるクラスが別のクラスのプロパティを取得するメカニズムです。たとえば、子供は両親の特性を継承します。継承により、既存のクラスのフィールドとメソッドを再利用できます。したがって、継承は再利用性を促進し、OOPの重要な概念です。

このチュートリアルでは、次のことを学習します-

  • 継承の種類
  • Javaでの継承
  • Java継承の例
  • スーパーキーワード
  • 例を使用してOOPの継承を学ぶ

継承の種類

ありますJavaでのさまざまなタイプの継承:

単一継承:

単一継承では、1つのクラスが別のクラスを拡張します(1つのクラスのみ)。

単一継承

上の図では、クラスBはクラスAのみを拡張しています。クラスAはスーパークラスであり、クラスBはサブクラスです。

多重継承:

多重継承では、1つのクラスがさらに拡張します1つのクラスより。 Javaは多重継承をサポートしていません。

多重継承

上の図のように、クラスCはクラスAとクラスBの両方を拡張します。

マルチレベル継承:

マルチレベル継承では、1つのクラスが派生クラスから継承できます。したがって、派生クラスは新しいクラスの基本クラスになります。

マルチレベル継承

図に示すように、クラスCはBのサブクラスであり、BはサブクラスクラスAの。

階層継承:

階層継承では、1つのクラスが多くのサブクラスに継承されます。

階層継承

上記の例のように、クラスB、C、およびDは同じものを継承しますクラスA。

ハイブリッド継承:

ハイブリッド継承は、単一継承と多重継承の組み合わせです。

ハイブリッド継承

上記の例のように、クラスAのすべてのパブリックメンバーと保護されたメンバーは最初にクラスBを介して、次にクラスCを介してクラスDに継承されます。

注:Javaはハイブリッド/複数継承をサポートしていません

Javaでの継承

Java INHERITANCEは、あるクラスが別のクラスのプロパティを取得するメカニズムです。Javaでは、2つのクラス間に「Is-A」関係が存在する場合、継承を使用します。親クラスはスーパーと呼ばれます。クラスと継承されたクラスはサブクラスと呼ばれます。キーワードextendsは、スーパークラスの機能を継承するためにサブクラスによって使用されます。

継承コードの再利用性につながるため、重要です。

Java継承構文:

class subClass extends superClass { //methods and fields } 

Java継承E xample

スーパーキーワード

スーパーキーワードは「this」キーワードに似ています。

キーワードsuperを使用して、親クラスの任意のデータメンバーまたはメソッドにアクセスできます。

Superキーワードは、変数、メソッド、コンストラクターのレベルで使用できます。

構文:

super.<method-name>();

例を使用してOOPの継承を学習する

前の例と同じ銀行アプリケーションを検討してください。

2つの異なるアカウントタイプを開くことになっています。1つは保存用、もう1つはチェック用(現在とも呼ばれます)です。

構造化およびオブジェクト指向プログラミングの観点からコーディングにアプローチする方法を比較して研究しましょう。構造化アプローチ:構造化プログラミングでは、2つの関数を作成します。

  1. 1つは撤回用
  2. もう1つはデポジットアクション用です。

これらの機能の動作は、アカウント間で同じです。

OOPのアプローチ: OOPプログラミングアプローチを使用している間。 2つのクラスを作成します。

  • それぞれに預金および引き出し機能が実装されています。
  • これにより、余分な作業が冗長になります。

ソフトウェアの変更リクエスト

現在、ソフトウェア業界で非常に一般的なものの要件仕様に変更があります。当座貸越機能を備えた機能特権のある銀行口座を追加することになっています。背景として、当座貸越は、口座の残高よりも多くの金額を引き出すことができる機能です。

構造的アプローチ:機能的アプローチを使用して、引き出し機能を変更する必要があります。これはすでにテストされ、ベースライン化されています。そして、以下のようなメソッドを追加すると、新しい要件が処理されます。

OOPのアプローチ:OOPのアプローチを使用するには、次のことを行う必要があります。 withdraw関数を独自に実装した新しいクラスを作成します。テストしたコードには触れたことはありません。

別の変更リクエスト

要件が変更された場合はどうなりますかさらに?独自の預金要件を持つクレジットカード口座を追加したい。

構造的アプローチ:構造的アプローチを使用して、テスト済みのデポジットコードを変更する必要があります再び。

OOPのアプローチ:しかし、オブジェクト指向のアプローチを使用すると、独自のdepositメソッドの実装で新しいクラスを作成します(下の画像で赤で強調表示されています)。

したがって、構造プログラミングは最初は簡単なアプローチのように見えますが、長期的にはOOPが勝ちます。

OOPでの継承の利点

ただし、すべてのクラスで、コードが繰り返されていると主張します。

これを克服するには、「アカウント」と言う親クラスを作成し、同じ機能の入出金を実装します。そして、子クラスに「アカウント」クラスを継承させます。アカウントクラスの引き出しおよび入金機能にアクセスできるようにします。

機能を個別に実装する必要はありません。これはJavaの継承です。 。

Write a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です