In reply to dave_59:
Thank you Dave.
I have a follow up question, in one of your comments you explained how inheritance can be used to access child class methods.
https://verificationacademy.com/forums/uvm/can-we-call-child-class-parent-class
I am trying to do the same but not seeing as expected. Below is the code -
class base_class;
virtual function void display1();
$display("Inside base class display1");
endfunction
virtual function void display2();
$display("Inside base class display2");
endfunction
virtual function void display3();
$display("Inside base class display3");
endfunction
endclass
// extended class 1
class ext_class_1 extends base_class;
function void display1();
super.display1();
$display("Inside extended class 1");
endfunction
endclass
// extended class 2
class ext_class_2 extends base_class;
function void display2();
super.display2();
$display("Inside extended class 2");
endfunction
endclass
// extended class 3
class ext_class_3 extends base_class;
function void display3();
super.display3();
$display("Inside extended class 3");
endfunction
endclass
// module
module class_polymorphism;
base_class bc;
ext_class_1 ec1;
ext_class_2 ec2;
ext_class_3 ec3;
initial begin
bc = new();
ec1 = new();
ec2 = new();
ec3 = new();
bc.display1();
bc.display2();
bc.display3();
end
endmodule
Output I am seeing :
Inside base class display1
Inside base class display2
Inside base class display3
What I was expecting :
Inside base class display1
Inside extended class 1
Inside base class display2
Inside extended class 2
Inside base class display3
Inside extended class 3
The extended class method was never called. What am I missing here?