前提・実現したいこと
Javaのアップキャストがなぜ自動的に型変換してくれるのかわかりません。
また、ダウンキャストが明示的に型変換しなければならないのかもわかりません。
発生している問題・エラーメッセージ
特になし
該当のソースコード
Java
1class A { 2 void dispA() { 3 System.out.println("A"); 4 } 5} 6 7class B extends A { 8 void dispB() { 9 System.out.println("B"); 10 } 11} 12 13class Test { 14 public static void main(String[] args) { 15 B b = new B(); 16 A a = b; 17 a.dispA(); 18 } 19} 20
試したこと
特になし
補足情報(FW/ツールのバージョンなど)
使用ツール:eclipse4_8.0
基本データ(プリミティブ)型の型変換では大きい型に小さい型を代入する場合は自動で型変換が行われ、
小さい型に大きい型を代入する場合は明示的にキャストしなければならないと学びました。
上記のソースコードではスーパークラス.a(小さい型)にサブクラス.b(大きい型)を代入しているように見えます。
逆にサブクラス.a(大きい型)にスーパークラス.a(小さい型)を代入する場合に明示的に型変換をしなければならない理由がわかりません。
基本データ(プリミティブ)型の代入の時と扱いが違うのでしょうか。
ここでつまづいている人がいないせいかインターネットで調べても出てきませんでした。
ご教授いただけますでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/31 02:59 編集
2020/07/31 03:13
2020/07/31 04:03