Access instanced prefab as Transform, but not GameObject?

Why doesn’t this work: eg.

GameObject obj = Instance(objPrefab) as GameObject;

obj.transform.parent = obj2;

but does work if instanced as Transform?

If objPrefab was a Transform variable and you have changed it to a GameObject variable you will have to assign the prefab again in the editor as it loses its reference.

A similar thing occurs if you had a GameObject variable and change it to a Transform variable. It will keep the reference but only as GameObject so won’t work to assign the parent and you will also have to assign the rpefab in the editor to fix it.