Local lo as Classe1 Clear lo = NewObject("Classe1") lo.newClasse2() lo.Testar() ***************** Classe1 ******************************** Define class Classe1 as ClasseAbstrata Procedure newClasse2 as Boolean Local loClasse2 as Classe2, loEmpty as Empty loClasse2 = NewObject("Classe2") && Where try to edit this code I get the message "Remove classes from memory" * loClasse2 = NewObject("ClasseAbstrata") && Where try to edit this code I don't get the message "Remove classes from memory" loClasse2.Testar() this.oRef.Add(loClasse2, "1") EndProc EndDefine ***************** Classe2 ******************************** Define class Classe2 as ClasseAbstrata EndDefine ***************** ClasseAbstrata ************************* Define class ClasseAbstrata as Custom oRef = null Procedure Init this.oRef = CreateObject("Collection") ? this.Class + " - No Init" EndProc Procedure Destroy ? this.Class + " - No Destroy" EndProc Procedure Testar ? this.Name + " funcionando - " + Time() EndProc EndDefine