在 SystemVerilog 中,Virtual Class 是否与 Abstract Class 相同?

In SystemVerilog, Is Virtual Class same as Abstract Class?

请帮助我理解 SystemVerilog 中 Virtual Class 的需要。

是的,SystemVerilog 中的抽象 class 与虚拟 class 相同。 Java 使用关键字 'abstract',但其他语言如 C++ 没有特定的关键字。 SystemVerilog 重新使用关键字 virtual 以免保留另一个关键字。抽象 class 只是构造函数受保护的抽象,您不能直接构造它,必须先扩展 class 才能构造派生对象。 Abstract classes 允许另一个概念是纯虚方法。这些是必须在扩展 class 中覆盖的方法。像 UVM 这样的基础 class 库充满了抽象 classes 并且具有您必须覆盖的方法,例如复制或打印方法。 仅包含纯虚方法的抽象 class 称为 interface class,您可以定义实现多个接口 class 的接口 class。今年 DVCon 有很多关于这个主题的论文。