1.继承和子类
- 定义过的类Packet,可以进一步扩展构成一个新的类LinkedPacket
- 通过extends,LinkedPacket继承于其父类Packet,包括继承其所有的成员(变量/方法)
class LinkedPacket extends Packet;
LinkedPacket next;
function LinkedPacket get_next();
get_next = next;
endfunction
endclass
2.成员覆盖
- 子类可以继承父类的成员,所以LinkedPacket对象中也包含Packet类的成员
- 由此,父类句柄可以指向子类的对象
LinkedPacket lp = new;
Packet p = lp;
- 如果子类中声明了与父类同名的成员(变量/方法),那么子类对其同名成员的访问都将指向子类,而父类的成员将被隐藏
3.super
- super是用来访问当前对象其父类的成员
- 尤其当子类的成员如果与父类的成员同名,那么需要使用super来指定访问其父类成员,而非默认的子类成员