class C;
int c1 ;
int c2 ;
int c3 ; // 定义变量
function new(int a); // 构造函数初始化变量,a的值从外部传递
c2 = 2;
c3 = a;
endfunction
endclass
class D extends C;// 从C中扩展类D,D具有C的特征
int d1 = 4;
int d2 = c2; //可以将c2 的值传递给d2;
int d3 = 6;
function new;
super.new(d1);// 使用super关键字访问原始类
endfunction
endclass
module tb;
C p1; //创建句柄
D p2;
initial begin
p1 = new(3); //实例化 new一个对象
$display("c1 = %0d,c2 = %0d,c3 = %0d",p1.c1,p1.c2,p1.c3);
p2 = new();
$display("d1 = %0d,d2 = %0d,d3 = %0d",p2.d1,p2.d2,p2.d3);
end
endmodule
class C; //定义一个原始类
int c1 ;
int c2 ;
int c3 ; //定义变量
function new(); //构造函数初始化变量
c1 = 1;
c2 = 2;
c3 = 3;
endfunction
function display(); //定义一个display函数
$display("c1 = %0d,c2 = %0d,c3 = %0d",c1,c2,c3);
endfunction
endclass
class D extends C; //定义一个扩展类
int d1;
int d2 ;
function new;
super.new(); //使用super关键字调用原始类里的函数
d1 = 2;
d2 = 3;
endfunction
function display();
super.display(); //使用super关键字调用原始类里的display函数
$display("d1 = %0d,d2 = %0d",d1,d2);
endfunction
endclass
module tb;
C p1;
D p2; //创建句柄
initial begin
p1 = new();
p2 = new(); //new一个对象
p2.display; //调用D类里的display函数
end
endmodule