メンバの隠蔽
サブクラスでは、親クラスのメンバ(オブジェクトやメソッド)を再定義することができます。
これは、親クラスのメンバを隠蔽するといいます。
この例は、継承とサブクラスの例と同じです。
クラスAのサブクラスであるクラスBでは、クラスAで定義したオブジェクト a を再定義して隠蔽しています。
クラスAのインスタンスxのオブジェクトaは、10ですが、クラスBのインスタンスyのオブジェクトaは、20になります。
例:
class A;
int a;
function new( integer a );
this.a = a;
endfunction
endclass : A
class B extends A;
int a;
function new( integer a );
this.a = 2*a;
endfunction
endclass : B
A x;
B y;
x = new(10);
y = new(10);