途中で送信しちゃった

((Dog)a).eat()は、(Dog)aを数式演算子としての()で括って最優先で演算し、その結果(戻り値)のDogに定義されたeat()を呼び出してる