アップキャスト 【upcasting】
概要
アップキャスト(upcasting)とは、オブジェクト指向プログラミングにおける型変換(キャスト)の一種で、子クラス(サブクラス/派生クラス)のインスタンスを親クラス(スーパークラス/基底クラス)へ型変換すること。あるデータ型の変数を別の型に変換することを「型キャスト」(type casting)というが、オブジェクト指向言語では、あるクラスから作成されたインスタンスを別のクラスのインスタンスに変換することも可能となっている。
このうち、あるクラスのインスタンスを、そのクラスの親クラスのインスタンスに変換することをアップキャストという。子クラスのインスタンスは親クラスの仕様をすべて備えているため、安全に変換することができる。変換後のインスタンスでは子クラス独自の機能は使えなくなる。
これとは逆に、あるクラスのインスタンスを子クラスのインスタンスに変換することは「ダウンキャスト」(downcasting)という。親クラスのインスタンスが子クラスの仕様を満たしている保証はないため明示的な変換操作が必要であり、失敗してエラーになることもある。
(2023.5.12更新)