Sap-abap-inheritance
SAP ABAP-継承
オブジェクト指向プログラミングで最も重要な概念の1つは、継承の概念です。 継承を使用すると、クラスを別のクラスの観点から定義でき、アプリケーションの作成と保守が簡単になります。 これにより、コード機能を再利用して実装時間を短縮することもできます。
クラスを作成するとき、プログラマは完全に新しいデータメンバーとメソッドを記述する代わりに、新しいクラスが既存のクラスのメンバーを継承するように指定できます。 この既存のクラスは「ベースクラス」または「スーパークラス」と呼ばれ、新しいクラスは「派生クラス」または「サブクラス」と呼ばれます。
- あるクラスのオブジェクトは、別のクラスのプロパティを取得できます。
- 派生クラスは、スーパークラスのデータとメソッドを継承します。 ただし、メソッドを上書きしたり、新しいメソッドを追加したりできます。
- 継承の主な利点は再利用性です。
継承関係は、クラス定義ステートメントに「INHERITING FROM」オプションを使用して指定されます。
以下は構文です-
例
上記のコードは、次の出力を生成します-
アクセス制御と継承
派生クラスは、その基本クラスのすべての非プライベートメンバーにアクセスできます。 したがって、サブクラスのメンバー関数にアクセスできないはずのスーパークラスのメンバーは、スーパークラスでprivateと宣言する必要があります。 私たちは、次の方法でそれらにアクセスできる人に応じてさまざまなアクセスタイプを要約することができます-
Access | Public | Protected | Private |
---|---|---|---|
Same calss | Yes | Yes | Yes |
Derived class | Yes | Yes | No |
Outside class | Yes | No | No |
スーパークラスからクラスを派生させる場合、パブリック、保護、またはプライベート継承を介して継承できます。 継承のタイプは、上記のようにアクセス指定子によって指定されます。 保護された継承またはプライベートな継承はほとんど使用しませんが、パブリックな継承が一般的に使用されます。 異なるタイプの継承を使用している場合、次のルールが適用されます。
- パブリック継承-クラスをパブリックスーパークラスから派生させると、スーパークラスのパブリックメンバーはサブクラスのパブリックメンバーになり、スーパークラスの保護メンバーはサブクラスの保護メンバーになります。 スーパークラスのプライベートメンバーは、サブクラスから直接アクセスすることはできませんが、スーパークラスのパブリックおよび保護されたメンバーへの呼び出しを介してアクセスできます。
- Protected Inheritance -保護されたスーパークラスから派生する場合、スーパークラスのパブリックおよび保護されたメンバーはサブクラスの保護されたメンバーになります。
- Private Inheritance -プライベートスーパークラスから派生する場合、スーパークラスのパブリックメンバーと保護メンバーはサブクラスのプライベートメンバーになります。
サブクラスのメソッドの再定義
スーパークラスのメソッドは、サブクラスで再実装できます。 メソッドを再定義するいくつかのルール-
- 継承されたメソッドの再定義ステートメントは、元のメソッドの定義と同じセクションにある必要があります。
- メソッドを再定義する場合、サブクラスでそのインターフェイスを再度入力する必要はなく、メソッドの名前のみを入力する必要があります。
- 再定義されたメソッド内で、スーパー参照を使用して直接スーパークラスのコンポーネントにアクセスできます。
- 疑似参照superは、再定義されたメソッドでのみ使用できます。
例
F8を実行した後、値9と10を入力すると、上記のコードは次の出力を生成します-