クラスとキャスト
通常、すべての型情報は実行時に利用できます。つまり、Apex はキャストを許可しています。キャストとは、あるクラスのデータ型を別のクラスのデータ型として割り当てることです。ただし、割り当てるクラスが元のクラスのサブクラスである場合に限ります。あるデータ型のオブジェクトを別のデータ型に変換する場合にキャストを使用します。
次の例では、CustomReport が Report クラスを拡張しています。そのため、そのクラスのサブクラスとなっています。つまり、親のデータ型 (Report) のオブジェクトを、サブクラスのデータ型 (CustomReport) のオブジェクトにキャストできます。
次のコードセグメントでは、まずレポートオブジェクトのリストにカスタムレポートオブジェクトが追加されます。その後、カスタムレポートオブジェクトがレポートオブジェクトとして返され、カスタムレポートオブジェクトとして再度キャストされます。
キャストの例
さらに、インターフェース型は、サブインターフェースまたはそのインターフェースを実装しているクラス型にキャストできます。