一、覆盖方法
覆盖机制可以将原来所属的类型替换为另外一个新的类型。
 在覆盖之后,原本用来创建原属类型的请求,将由工厂来创建新的替换类型。
- 无需再修改原始代码,继而保证了原有代码的封装性。
- 新的替换类型必须与被替换类型兼容,否则稍后的句柄赋值将失效,所以使用继承,例如可以用子类来覆盖原本的父类。
做顶层修改时,非常方便
 
 
 
 覆盖实例
 
 父类 hello 方法加了virtual
 
 
 使用comp1::type_id::set_override(comp2::get_type()); // 类型覆盖
 只有用工厂创建对象比如说创建uvm_component对象时
 comp_type::type_id::create(string name,uvm_component parent);
 工厂才会做类型覆盖
使用类型覆盖后,c2=comp1::type_id::create(“c2”,null),返回 的是comp2的句柄。

 
 层次越高的类型替换生效。
 



















