In reply to kbkdec15:
But you have extended class A in your definition of class B. It does not matter that you have not tried to construct class B. You have written an illegal constructor for class B. The class definition is illegal, and the compiler wont except it. It does not matter even if both class A and B are never constructed, the compiler will reject it as it parses it. The following code by itself will not compile
class A;
function new(int a);
endfunction
endclass
class B extends A;
endclass
The compiler will implicitly insert this constructor into class B;
function new; super.new(); endfunction
and that call to super.new generates an error because it has no argument required by class A’s new.