継承とサブクラス

既に定義済みのクラスを拡張することができます。

これをクラスの継承といいます。また、あるクラスを継承したクラスをサブクラスと呼びます。

また、継承されるクラスを親クラス、継承したクラスを子クラスとも呼びます。

SystemVerilogのクラスは、1つのクラスしか継承できません。

(複数のクラスを親クラスに持つようなクラスを定義することはできません)

下の例では、親クラスは A 、子クラスは、 B になります。

クラス B は、クラス A のサブクラスになります。

(クラスBは、クラスAを継承するともいいます)。

クラスAを継承するクラスBは、通常のクラス定義(class B)の後に extends 親クラス名を付けます。後は、通常のクラス定義と同じです。

例:

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