John Simon wrote: > You can always upcast and downcast safely, since it isn't actually a 'value' type, only the address is passed around. The type of the class remains intact. Right, but a scope variable has its type decided at compile time, always. In that way, it's not polymorphic.