アップキャスト

あるクラスをスーパークラスへとキャストすること。

キャストの一種。と言っても、アップキャストは必ず「暗黙的キャスト」が可能なため、明示的にキャストする必要はない。

 http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000106.html

アップキャストでは「何も変化しない」という点が重要である。アップキャストする際、渡される参照の値や、その参照が指し示すインスタンスは全く変化しない。変わるのは、参照を格納する、参照型変数の型だけである。

この機能はポリモーフィズムのために存在する。格納する参照型変数のクラスが持つメソッドを呼び出した場合、インスタンスのクラスでオーバーライドされていれば、そのオーバーライドしたメソッドが呼び出される。アップキャストが暗黙的に可能なのは、ポリモーフィズムを実現するための言語仕様と考えた方がよい。

これに対し、サブクラスへとキャストすることを「ダウンキャスト」と呼ぶ。不用意なアップキャストは不必要なダウンキャストを強いられることもあり、バグが発生する可能性がある。本当にアップキャストが必要なのか、ポリモーフィズムの観点からも考慮した方が良いだろう。

 

ちなみに「up」なのは、クラスの継承関係において「スーパークラス」が「サブクラス」の「上」にあるためである。

--------------------------------

さっぱりなんだけど・・・ 横文字大杉・・・

こういうの調べないと身につかないんだけど、知らない単語が多すぎるなあ・・