COBOL2002 使用の手引 手引編


20.2.5 オブジェクト指向による継承

継承を行うには,COBOL2002の「INHERITS句」を使用します。

〈この項の構成〉

(1) INHERITS句

INHERITS句は,クラスの"CLASS-ID. クラス名"に続けて指定します。

(例)
CLASS-ID. クラス名 INHERITS スーパクラス名.

継承すると,スーパクラスの性質が,継承するクラスおよび継承するクラスのサブクラスにも定義されているかのように扱われます。継承の詳細については,マニュアル「COBOL2002 言語 標準仕様編」 「5.2.9 クラス継承」を参照してください。

(2) 継承の使い方

「預け入れ」メソッドと「引き出し」メソッドを持つ「預金口座」クラスがある場合,この「預金口座」クラスを継承する例を,次に示します。

(例1)

「預金口座」クラスの「預け入れ」メソッド,「引き出し」メソッドに加えて「残高照会」メソッドを持つ「普通預金口座」クラスを作成します。この場合,「普通預金口座」クラスは,「預金口座」クラスを継承し,「残高照会」メソッドだけを定義すれば,必要なメソッドを備えられます。

[図データ]

(例2)

「預金口座」クラスの「預け入れ」メソッド,「引き出し」メソッドに加えて「残高照会」メソッドを持ち,さらに「引き出し」メソッドが独自の処理をする「当座預金口座」クラスを作成します。この場合,すでに「普通預金口座」クラスが存在するときは,「当座預金口座」クラスは,「普通預金口座」クラスを継承し,「引き出し」メソッドだけを定義すれば,必要なメソッドを備えられます。

「引き出し」メソッドは,継承する「預金口座」クラスですでに定義されているため,「当座預金口座」クラスで独自の「引き出し」メソッドを定義する場合は,METHOD-ID段落にOVERRIDE句を指定します。これによって,当座預金口座クラスの引き出しメソッドが預金口座クラスの引き出しメソッドを上書きし,当座預金口座クラスの引き出しメソッドが有効となります。

[図データ]