In reply to Pooja Pathak:
Because class A is parameterized class, "parameterized" means constant
A's default type is "int" and class b is a derived class of a#(T="real").
So it's not compatible. "a1 = b1", this downcasting doesn't work.
if you change in this way, then it becomes compatible again.
class b extends a#(int);
class b extends a;