INSTALL @lib$ + "CLASSLIB" REM Create parent class T: DIM classT{array#(0), setval, retval} DEF classT.setval (n%,v) classT.array#(n%) = v : ENDPROC DEF classT.retval (n%) = classT.array#(n%) PROC_class(classT{}) REM Create class S derived from T, known only at run-time: RunTimeSize% = RND(100) DIM classS{array#(RunTimeSize%)} PROC_inherit(classS{}, classT{}) DEF classS.retval (n%) = classS.array#(n%) ^ 2 : REM Overridden method PROC_class(classS{}) REM Create an instance of class S: PROC_new(myobject{}, classS{}) REM Now make a copy of the instance: DIM mycopy{} = myobject{} mycopy{} = myobject{} PROC_discard(myobject{}) REM Test the copy (should print 123^2): PROC(mycopy.setval)(RunTimeSize%, 123) result% = FN(mycopy.retval)(RunTimeSize%) PRINT result% END