Class definitions can become very long with a lot of lines between class and endclass. This makes it difficult to understand what all functions and variables exist within the class because each function and task occupy quite a lot of lines.

Using extern qualifier in method declaration indicates that the implementation is done outside the body of this class.


class ABC;
  // Let this function be declared here and defined later
  // by "extern" qualifier
  extern function void display();
// Outside the class body, we have the implementation of the
// function declared as "extern"
function void ABC::display();
   $display ("Hello world");

module tb;
  // Lets simply create a class object and call the display method
  initial begin
    ABC abc = new();

Simulation Log
ncsim> run
Hello world
ncsim: *W,RNQUIE: Simulation is complete.