Working in the latest Unity3d 3.5 if it matters.
If I have a set of classes:
Class A extends MonoBehaviour
Class B extends Class A
Class C1 extends Class B
Class C2 extends Class B
And I have a GameObject that has C2 as a component. Will GetComponent.<A>()
return the C2 component?
Well, I haven't tried a three-level hierarchy but, for two, I can confirm that GetComponent works as you expect.
Also, this can be helpful: try to call
gameObjC1.SendMessage("MethodFromA");
in case you need to get A just to call its method.