メンバの隠蔽

サブクラスでは、親クラスのメンバ(オブジェクトやメソッド)を再定義することができます。

これは、親クラスのメンバを隠蔽するといいます。

この例は、継承とサブクラスの例と同じです。

クラス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);