\r\n\r\n
オブジェクト指向プログラミング(OOP)では、システムはオブジェクトを使ってモデル化されます。これらのオブジェクトは、クラスを使って作成されます。クラスは、オブジェクトを作成するために使用される青写真または説明です。オブジェクトの作成は、オブジェクトのインスタンス化とも呼ばれます。各オブジェクトは、他のオブジェクトと通信しています。プログラムやソフトウェアは、オブジェクト指向プログラミングで開発することができます。継承はOOPの重要な概念である。コードの再利用性を高めることができます。プログラムを最初から実装するのではなく、すでに存在するクラスのプロパティやメソッドを新しいクラスに継承することができる。これにより、プログラムをより管理しやすくすることができます。スーパークラスとサブクラスは、継承に関連する2つの用語である。この記事では、スーパークラスとサブクラスの違いについて説明します。スーパークラスとサブクラスの主な違いは、スーパークラスは既存のクラスから新しいクラスを派生させたものであり、サブクラスはスーパークラスのプロパティとメソッドを継承した新しいクラスであることです。
1. 概要と主な違い 2. スーパークラスとは 3. サブクラスとは 4. スーパークラスとサブクラスの類似点 5. 横並びの比較 - 表形式でのスーパークラスとサブクラス 6. まとめ
継承では、新しいクラスを派生させる既存のクラスをスーパークラスと呼び、親クラスまたは基底クラスとも呼ばれる。
A B Cをクラスとして扱う次の例のように、継承には様々な種類があります。
図01:相続の種類
図02:ミックスジェネティクス
上の図によると、スーパークラスは各相続タイプによって異なります。単一レベル継承では、Aはスーパークラスです。多段階継承では、AはBのスーパークラスであり、BはCのスーパークラスである。階層型継承では、AはBとCのスーパークラスとなる。多重継承では、AとBはともにCのスーパークラスとなる。
混合継承は、多段階継承と多層継承を組み合わせたものです。左の図では、AはB、C、Bのスーパークラスであり、CはDのスーパークラスである。右の図では、AはBとBのスーパークラス、DはCのスーパークラスです。
Javaで書かれた次のプログラムを参照してください。
図03:Javaにおける継承手続き
上記のプログラムによると、クラスAはsum()とsub()メソッドを持っています。クラスBはmultiply()メソッドを持っています。したがって、クラスBはクラスAのプロパティとメソッドにアクセスすることができます。オブジェクトはクラスBの参照型を使用して作成されます。したがって、オブジェクトはsum()、sub()、multiply()などのすべてのメソッドにアクセスすることができます。オブジェクトの生成にスーパークラス参照型を使用した場合、クラスBのメンバにアクセスすることはできません。 e. したがって、スーパークラス参照はクラスBに属しているため、multiply()メソッドを呼び出すことはできません。
上図によれば、サブクラスは各相続タイプによって異なる。単一継承の場合、BはBのサブクラスとなる。多重継承では、BはAのサブクラス、CはBのサブクラスです。階層継承では、BとCはAのサブクラスです。
混合継承では、左の図のBとCはAのサブクラスで、DはBとCのサブクラスである。右の図では、BはAのサブクラスであり、CはBとDのサブクラスである。
上記の継承手順により、クラスBはクラスAの拡張であり、そのためクラスBはクラスAのすべてのプロパティとメソッドにアクセスできます。クラスBは、クラスAを継承するサブクラスと呼ばれる新しいクラスです。サブクラスや派生クラスとも呼ばれる。クラスBはmultiply()メソッドを持ち、継承によりクラスAのsum()、sub()メソッドにもアクセス可能です。
スーパークラスとサブクラス | |
継承を行う場合、新しいクラスを派生させる既存のクラスがスーパークラスとなる。 | 継承を実装する場合、スーパークラスからプロパティやメソッドを継承するクラスはサブクラスとなります。 |
同義語 | |
スーパークラスは、ベースクラス、親クラスと呼ばれます。 | サブクラスは、派生クラス、サブクラスと呼ばれます。 |
機能 | |
スーパークラスは、サブクラスのプロパティおよびメソッドを使用することはできません。 | サブクラスは、スーパークラスのプロパティおよびメソッドを使用することができます。 |
単一レベルの継承 | |
スーパークラスがあります。 | サブクラスがあります。 |
グレード継承 | |
スーパークラスがあります | 多くのサブカテゴリーがあります。 |
多重継承 | |
スーパークラスはたくさんあります。 | サブクラスがあります。 |
継承は、OOPの概念である。既存のクラスのプロパティやメソッドを、新しいクラスで利用できるようにするものです。継承クラスはスーパークラス、派生クラスはサブクラスです。スーパークラスとサブクラスの違いは、スーパークラスは既存のクラスから新しいクラスを派生させたもので、サブクラスはスーパークラスのプロパティとメソッドを継承した新しいクラスであることです。
この記事のPDF版をダウンロードし、引用元に従ってオフラインで使用することができます。 PDF版のダウンロードはこちら スーパークラスとサブクラスの違いについて