クラス (サブクラス、派生クラス、または子クラスと呼ばれる) を別のクラス (スーパークラス、基本クラス、または親クラスと呼ばれる) の特殊化クラスにすることができます。
サブクラスは、そのスーパークラスのメソッドおよび インスタンス・データを継承し、is-a 関係によって、そのスーパークラスに関連付けられています。例えば、サブクラス P がスーパークラス Q から継承し、サブクラス Q がスーパークラス S から継承した場合、P のインスタンスは Q のインスタンスであり、また (推移性によって) S のインスタンスでもあります。したがって、P のインスタンスは、Q と S のメソッド およびデータを継承します。
サブクラスを使用することの利点:
制約事項: COBOL プログラムでは多重継承 を使用することはできません。 定義する各 COBOL クラスには、Java または COBOL でインプリメントされた即時スーパークラスは必ず 1 つだけでなければなりません。また、それぞれのクラスは、直接的または間接的に java.lang.Object から派生したもので なければなりません。継承のセマンティクスは、Java によって定義されます。
サブクラスの構造および構文は、クラス定義の構造および構文と同一です。サブクラス定義の OBJECT 段落内で、それぞれ、DATA DIVISION および PROCEDURE DIVISION に、インスタンス・データとメソッドを 定義します。個別のオブジェクト・インスタンスにではなく、サブクラス自体に関連付けるデータとメソッドを必要とするサブクラスに、サブクラス定義の FACTORY 段落内で、別々の DATA DIVISION および PROCEDURE DIVISION を定義します。
COBOL インスタンス・データは private です。サブクラスが COBOL スーパークラスのインスタンス・データに アクセスすることができるのは、スーパークラスがそのアクセスを可能にするために属性 (get または set) インスタンス・メソッドを定義する場合に限られます。
関連参照
The Java Language Specification (Inheritance, overriding, and hiding)
COBOL クラス定義構成 (Enterprise COBOL 言語解説書)