java勉強
java勉強
参考サイト
----~----------------------------------
・同じく「クラス型」「インターフェイス型」の値もキャスト可
・「クラス型」「インターフェイス型」がキャストできるのは代入する型や、先入先の型の派生型、または実装型でないといけない
・Hamsterクラスが、Animalクラスaのサブクラスであれば以下の様なキャストが可能
------------------------------------------
Animal a =new Hamster();
Hamster h=(Hamster)a;
ただし、以下の様なコードは不可
Animal c =new Hamster();
Hamster h =(Hamstr)c; //キャストエラー
-------------------------------------------
・変数cはアニマル型だが、実態は「Cat」オブジェクト
・エラーを防ぐには、instanceof演算子を利用する
・instance演算子は、オブジェクトが指定されたクラス、またはスーパークラスのインスタンスであるか判定する。
・クラス型のキャストは、あらかじめ「instanceof」演算子で実際の型を判定する事で安全にキャストを実際可能
-------------------------------------------
Animal c=new Cat();
if (c instanceof Hamster) {
Hamster h = (Hamster)c;
}
------------------------------------------