Well, firstParent not created (the "new" keyword is not used), but is executed from firstChild :
Parent firstParent = (Parent)firstChild;
For testing using Object.ReferenceEquals (i.e. firstParent and firstChild are the same instance)
if (Object.ReferenceEquals(firstParent, firstChild)) { ... }
source share