×
データ型と変数
プリミティブ型における拡大型変換の順序は「byte -> short (または char) -> int -> long -> float -> double」です。 この矢印の方向への変換は情報が失われないため自動的に行われます。逆に左方向へ変換(例: int から byte)する場合は、(byte) のようにキャスト演算子を明示しなければコンパイルエラーとなります。 また、式の中で複数の型が混在して計算される場合、最も広い型に合わせて自動的に型昇格(プロモーション)が行われます。例えば int と double の加算結果は double 型になります。 参照型においては、サブクラスからスーパークラスへの変換(アップキャスト)は常に安全であるため暗黙的に行えますが、スーパークラスからサブクラスへの変換(ダウンキャスト)は明示的なキャストが必要であり、実際のインスタンス型と不整合がある場合は実行時に ClassCastException が発生します。

試験でのポイント