文章来源:
SystemVerilog——学习笔记4(父类句柄和子类句柄的问题)_父句柄和子句柄__lalla的博客-CSDN博客
SystemVerilog-继承类的复制_systemverilog 复制_Lucky是一名ICer的博客-CSDN博客
SV学习笔记—多态与类型转换_sv 多态_Verification_White的博客-CSDN博客
父类句柄指向子类对象
class son extends father;
endclass
father f; //声明句柄
son s;
f = s; //父类句柄指向子类句柄
$cast(s, f); //子类句柄指向父类句柄(不一定成功)
父类句柄可以指向子类对象(部分内容)和父类对象;
子类句柄可以指向子类对象,不可以指向父类对象。
父类句柄指向子类对象,与子类句柄指向相同的存储空间,但只能访问子类对象中的父类对象。
子类句柄指向父类对象
$cast
$cast (s, f); //动态类型转换
父类句柄要先指向子类对象(指向子类对象的存储空间)后,子类句柄才能指向父类对象(句柄的指向的存储空间一致)
virtual
在父类中,将与子类定义的同名的function/task/变量用virtual修饰后,即可被子类改写;