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