super

super は、親クラスのメンバにアクセスするために使います。

なお、親クラスへのメンバには、superでアクセスできますが、親クラスの親クラスにはアクセスできません。

継承とサブクラスの例と基本的には同じですが、クラスBのコンストラクタで super を使っています。

(こんな例のような記述はしませんが、説明のための記述です。あしからず)

1つ目の super は、親のコンストラクタ(new)を呼んでいるところです。

1)、super.new(a)

superを使って親クラスのコンストラクタをコンストラクタの最初に呼ぶべきです。

(最初に親クラスの初期化の後に、子クラスの初期化をしなければならないからです。)

2つ目の super は、親クラスのメンバ a にアクセスしているところです。

2)、this.a 2*super.a;

例、

class A;

int a;

function new( integer a );

this.a = a;

endfunction

endclass : A

class B extends A;

int a;

function new( integer a );

super.new(a);

this.a = 2*super.a;

endfunction

endclass : B