GameObjectはUnityEngineのシリアライズ機能を持ったObject型を継承したGameObject型
コンポーネントはMonoBehaviourを継承したそれぞれの型で、MonoBehaviourは基底クラスを辿るとBehaviour型→Component型→Object型を継承している
コンポーネントはゲームオブジェクトにアタッチするからゲームオブジェクトの派生クラスのように見えるけど、実はゲームオブジェクトとは先祖が同じ別人で別の型だから、GameObject型を取得する関数でコンポーネントは取得できない