Javaの継承の種類:単一、複数、マルチレベル、ハイブリッド
公開: 2021-06-30序章
プログラミング言語「Java」は、モバイル、Web、デスクトップなどのアプリケーションの開発に広く使用されています。これは、1995年にSunMicrosystemsによって開発された堅牢で高レベルのオブジェクト指向のプログラミング言語です。プログラミング言語であるにもかかわらず、JavaにはAPIとランタイム環境(JRE)があるため、プラットフォームとも呼ばれます。
Javaにはいくつかの概念があり、言語を理解するための4つの主要な概念があります。 それらは、抽象化、カプセル化、継承、およびポリモーフィズムです。
この記事では、Javaでの継承の概念とJavaでの継承のタイプに焦点を当てます。
継承とは何ですか?
名前が示すように、継承とはプロパティを継承することを意味します。 クラスが別のクラスのプロパティを派生できるようにするメカニズムは、継承と呼ばれます。 継承の概念により、プログラム内の情報を階層的に編成できます。
Javaでは、継承の概念により、ユーザーはクラスを作成し、既存のクラスのプロパティを使用できます。
この概念に関連するいくつかの重要な用語は次のとおりです。
- クラス:共通のプロパティを共有するオブジェクトのグループとして定義されます。
- サブクラス:派生クラスまたは拡張クラスとも呼ばれるこのクラスは、別のクラスから機能を継承します。 また、継承されたフィールドとメソッドに加えて、クラスから生成されたクラスは、独自のフィールドとメソッドを追加できます。
- スーパークラス:スーパークラスは、機能がサブクラスに継承されるクラスを表します。
- 再利用性:再利用性の手法により、ユーザーは既存のクラスのフィールドまたはメソッドを持つクラス(新しいクラス)を作成できます。 コードを再利用できます。
Java継承の重要性
Javaでの継承の実装には、次の利点があります。
- 継承は、重複するコードを最小限に抑えることで、コードの複雑さを最小限に抑えます。 同じコードを別のクラスで使用する必要がある場合は、そのクラスからそのサブクラスに単純に継承できます。 したがって、コードはより適切に編成されています。
- コードがより単純な形式で編成されると、コードの実行効率が向上します。
- ポリモーフィズムの概念は、継承と一緒に使用できます。
構文
基本的な構文は
クラススーパークラス{
—————-
}
クラスサブクラスはスーパークラスを拡張します
{{
————–
—————–
}
キーワード「extends」は、クラスを継承するときに使用されます。 これは、スーパークラスの機能がサブクラスに拡張されていることを定義します。
作成された新しいクラスはサブクラスと呼ばれ、継承されたクラスは親クラスと呼ばれます。
図1: Java継承を適用するコードの例を以下に示します
ソース
上記の例では、CalculationとMy_Calculationの2つのクラスが作成されています。 メソッドaddition()およびSubtraction()は、クラス計算からMy_Calculationに継承されます。 キーワードextendsは、メソッドを継承するために使用されています。
上記のコードをコンパイルして実行すると、次の出力が得られます。
図2:図1のコードの出力
ソース
My_Calculationクラスを作成すると、スーパークラスの内容がサブクラスにコピーされます。 サブクラスのオブジェクトを使用して、ユーザーはサブクラスメンバーにアクセスできます。
サブクラスのメンバーと同じ名前のスーパークラスのメンバーを区別する必要がある場合は、キーワード「super」が使用されます。 おそらく、同じメソッドを持つ2つのクラスSub_classとSuper_class、つまりdisplay()があるとします。 メソッドの実装は異なりますが、同じ名前です。 このような場合、スーパークラスメソッドとサブクラスメソッドを区別するには、superキーワードを使用する必要があります。
Java継承の種類
Javaでは、さまざまなタイプの継承が観察されます。
1.単一レベルの継承
名前が示すように、このタイプの継承は単一のクラスに対してのみ発生します。 親クラスから派生するクラスは1つだけです。 単一継承のフロー図を以下に示します。
図3:単一レベルの継承の図解
ソース
クラスAとクラスBの2つのクラスを図3に示します。ここで、クラスBはクラスAのプロパティを継承しています。
図4 :単一レベルの継承を適用するコードの例
ソース
2.マルチレベルの継承
マルチレベルの継承には、少なくとも2つまたは3つ以上のクラスの関与が含まれます。 1つのクラスは親クラスから機能を継承し、新しく作成されたサブクラスは別の新しいクラスの基本クラスになります。
図5:マルチレベル継承のフロー図
ソース
図5のフロー図から、クラスBはクラスAから派生したクラスであり、クラスCはさらにクラスBから派生していることがわかります。したがって、祖父母クラスの概念はマルチレベル継承で存在します。 ただし、祖父母のクラスのメンバーにJavaで直接アクセスすることはできません。
したがって、図5は、クラスCがクラスAとクラスBの両方のメソッドとプロパティを継承していることを示しています。
マルチレベル継承の例を、3つのクラスX、Y、およびZとともに以下に示します。クラスYは、クラスXから派生し、クラスZをさらに作成します。
図6:マルチレベル継承の例
ソース
3.階層継承
多くのサブクラスが1つの単一クラスから継承する継承のタイプは、階層継承と呼ばれます。
図7:階層継承のグラフィック表現。
図7では、クラスB、クラスC、およびクラスDの3つのクラスが単一のクラスAから継承されていることがわかります。すべての子クラスは、階層継承で同じ親クラスを持っています。
図8:階層継承の概念を示すコードの例
ソース
上記のコードは出力を生成します
ニャー…
食べる…
Javaのこれらのタイプの継承の他に、多重継承およびハイブリッド継承として知られている他のタイプがあります。 どちらのタイプもクラスではサポートされておらず、インターフェースを使用することによってのみ実現できます。
4.多重継承
多重継承は、サブクラスが複数の親クラスから機能を継承できる継承の一種です。
図9:多重継承の表現
ソース
図4は、クラスCがクラスAとクラスBの2つのクラスから派生していることを示しています。言い換えると、サブクラスCはクラスAとクラスBの両方からプロパティを継承していると説明できます。
5.ハイブリッド継承
ハイブリッド継承は、単一継承と多重継承を組み合わせた継承の一種です。 Javaでは多重継承がサポートされていないため、ハイブリッド継承はインターフェースのみを介して実現することもできます。
図10:ハイブリッド継承の表現
ソース
Javaにはさまざまなタイプの継承があり、最終的な目的は、スーパークラスから継承されたプロパティを持つサブクラスを作成することです。 作成されたサブクラスには、次のようなさまざまなプロパティがあります。
- サブクラスで継承されたフィールドとメソッドは直接使用できます。
- 新しいフィールドとメソッドは、スーパークラスに存在しないサブクラスで宣言することもできます。
- スーパークラスのメソッドと同じシグニチャを持つサブクラスに、新しいインスタンスメソッドを作成できます。 このプロセスは、オーバーライドと呼ばれます。
- スーパークラスのメソッドと同じシグニチャを持つサブクラスに、新しい静的メソッドを作成できます。 このプロセスは、非表示と呼ばれます。
世界のトップ大学からオンラインでソフトウェアコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
この記事では、Javaでの継承の重要な概念とJavaでの継承のタイプについて説明しました。 したがって、継承は、クラスのプロパティを別のクラスに取得するためにコードを再利用できるメカニズムです。 これは、記事に示されているように、さまざまなタイプの継承パターンによって実現できます。 ただし、継承の概念にはまだまだ多くのことがあります。 開発の分野で優れているためには、Javaの複雑なプログラミングを習得する必要があります。 インテリジェントデバイスの革新を夢見ている場合は、 upGrad’sが提供するフルスタックソフトウェア開発のエグゼクティブPGプログラムが最適です。 リバプールジョンムーア大学から認定されたこのコースは、IIITバンガロアに関連しており、500時間以上の学習時間を提供し、初期の専門家向けに設計されています。 upGradのコースから学んだスキルは、ソフトウェア開発、Web開発、JavaScript開発者などの分野に向けた機会を開くのに役立ちます。21〜45歳の年齢層の性別を問わず、インタラクティブプログラムが最適です。すべてのコーダー。
継承とは何ですか?
継承は、新しいオブジェクトが前のオブジェクトのプロパティを取得するプロセスです。 例として、クラス「人間」を考えることができます。 身長や体重など、クラスに含めたい人間のプロパティは多数ある可能性があります。そのための1つの方法は、これらすべてのプロパティをクラスで再度定義することです。 オブジェクト指向プログラミングを学ぶのに良い方法かもしれませんが、良い習慣ではありません。 これを行う最良の方法は、特定のクラスからこれらすべてのプロパティを継承することです。 クラス'child'は、クラス'human'(または'parent')のすべてのプロパティを継承できます。 これは、オブジェクト指向プログラミングでは継承と呼ばれます。