It doesn't. You're creating a NEW Field with the same name, which is something you can do, because it's a different scope. If you're relying on Polymorphism it's almost certainly going to screw up.
WriteStdout(Main.data.name+" bleh is ") WriteStdout(Main.bleh+"~n") WriteStdout(MainType(Child).data.name+" bleh is ") WriteStdout(MainType(Child).bleh+"~n")or
Local Temp:TList = New TList Temp.AddLast(Main) Temp.AddLast(Child) For Local i:MainType = EachIn Temp WriteStdout(i.data.name+" bleh is ") WriteStdout(i.bleh+"~n") Next