Hi Mike,
I understand what you are trying to point out.There should be a compile time error "Variable already declared in class"(Inherits from the super class).
It makes sense when we override a method (redefine the action).But it doesn't make sense to redeclare a variable or place holder( we can re-assign a value).
But as per the compiler specifications,
This is something to do with the Scope of Variables and Members,
#1 If you are accessing the member using the reference of the parent, then Parent class member is invoked. (always look for nearest members, if not found then broaden the scope)
#2 If you are accessing the member using the reference of the Child, then the look for the Child Class first, if not available then for the parent class.
Moral of the Story : Always look for nearest members, if not found then broaden the scope.