First of all for field polymorphism, you should have that field declared in both the base and derived class (as is the case with method polymorphism).
Now in you example, the field "name" is only part of derived class signature, and you do not have "name" variable in the signature of your base class. Due to this the object of your base class, though it is instantiated with derived class, would only show you base class signature items. Thus due to this reason, you are not able to use r.name in your example.
To know proper usage of field polymorphism, refer this link.