ISO2002MF 

クラスの継承

クラスの継承とは、1 つ以上のクラスのインターフェイスおよび実装を、他のクラスの基盤として使用するメカニズムである。継承先のクラス (下位クラスとも呼ばれる) は、1 つ以上のクラス (上位クラスと呼ばれる) から継承する。下位クラスは継承元のクラスで定義されているすべてのメソッドを受け継ぐ。その中には、継承元がさらに上位から継承したメソッドも含まれる。下位クラスは継承元のクラスで定義されているすべてのデータ定義を受け継ぐ。その中には、継承元がさらに上位から継承したデータ定義も含まれる。

ISO2002MF 注:これは、データを記述した実際のソース コードにアクセスできるということではなく、このソース コードに記述されたデータ項目を下位クラスが直接参照できるということでもない。つまり、下位クラスはそのソースコードに上位クラスの定義のコピーが含まれているように見なされ、継承されたデータ項目が下位クラスで定義されているものと見なされる。

継承されたデータ定義には、下位クラスのすべてのインスタンス オブジェクトおよびそのファクトリ オブジェクト用のデータが定義されている。各インスタンス オブジェクトは継承されたデータの独自のコピーを持ち、これは継承元のクラスのインスタンス オブジェクトに属するコピーとは異なる。各ファクトリ オブジェクトも継承されたデータの独自のコピーを持ち、これは継承元のクラスのファクトリ オブジェクトに属するコピーとは異なる。継承されたデータ項目の名前および属性は、継承先のクラスでは不可視となる。継承されたオブジェクト データは、オブジェクトの作成時に初期化される。継承されたファクトリ データは、継承元のクラスのファクトリ データから独立して割り当てられ、下位クラスのファクトリの作成時に初期化される。継承されたファクトリ データへのアクセスは、データを記述するクラスのファクトリ定義で指定されたメソッドおよびプロパティを介してのみ可能である。継承されたオブジェクト データへのアクセスも、データを記述するクラスのオブジェクト定義で指定されたメソッドおよびプロパティを介してのみ可能である。下位クラスは、データ定義と同様にすべてのファイル定義を継承し、データ定義と同じ条件に従う。下位クラスは、継承されたメソッドに加えて、またはその代わりにメソッドを定義することができ、継承されたデータ定義およびファイル定義に加えて、データ定義およびファイル定義を指定できる (継承された定義の代わりに別の定義を指定することはできない)。

下位クラスのインターフェイスは、継承元のクラスのインターフェイスに常に準拠する。ただし下位クラスは、継承元のクラスのメソッドの一部をオーバーライドして別の実装を提供できる。

継承元のクラスでユーザーが定義した語は下位クラスに継承されないため、その語は継承元のクラスに定義されていない場合と同様に下位クラス内で定義できる。