森のプログラミング練習ブログ

htmlやcssの練習したコードを投稿するブログです。

java勉強

java勉強

参考サイト

https://java-code.jp/

----~----------------------------------

・同じく「クラス型」「インターフェイス型」の値もキャスト可

・「クラス型」「インターフェイス型」がキャストできるのは代入する型や、先入先の型の派生型、または実装型でないといけない

・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;

}

------------------------------------------