As the code shown below, what is the relationship between those two covergroup named cg?
class A;
int a;
covergroup cg @(clk);
option.per_instance = 1;
v_a: coverpoint a
iff(reset){}
endgroup // cg
endclass // A
class B extends A;
int b;
covergroup cg @(clk);
option.per_instance = 1;
v_b: coverpoint b
iff(reset){}
endgroup // cg
endclass // B