Java - 参照型の型変換


■ページ目次

Top

■参照型の型変換

Top
■暗黙的型変換
Top
■参照型のキャスト
Top
■実習
  1. つぎのサンプル・アプリケーション"Cast22.java"を作成・実行してください。
    1. interface I {}
    2. interface J extends I {}
    3. public class A implements I {}
    4. public class B extends A {}
    5. public class C extends A implements J {}
    6. public class Cast22 {
    7. public static void main(String[] args) {
    8. Object o1 = new Object();
    9. A a1 = new A();
    10. B b1 = new B();
    11. C c1 = new C();
    12. I i1 = null;
    13. J j1 = null;
    14. A[] a2 = new A[10];
    15. B[] b2 = new B[10];
    16. Cloneable cl;
    17. // 暗黙の型変換
    18. o1 = a1; // スーパークラス <-- サブクラス
    19. i1 = j1; // スーパーインターフェース <-- サブインターフェース
    20. i1 = a1; // インターフェース <-- クラス
    21. i1 = b1; // スーパークラス <-- サブクラス
    22. o1 = i1; // Object <-- インターフェース
    23. o1 = a2; // Object <-- 配列型
    24. cl = a2; // Cloneable <-- 配列型
    25. a2 = b2; // スーパークラス配列型 <-- サブクラス配列型
    26. // キャスト
    27. o1 = new A();
    28. a1 = (A)o1; // スーパークラス --> サブクラス
    29. i1 = new C();
    30. j1 = (J)i1; // スーパーインターフェース --> サブインターフェース
    31. i1 = new A();
    32. a1 = (A)i1; // インターフェース --> クラス
    33. i1 = new B();
    34. b1 = (B)i1; // スーパークラス --> サブクラス
    35. o1 = new A();
    36. i1 = (I)o1; // Object --> インターフェース
    37. o1 = new A[10];
    38. a2 = (A[])o1; // Object --> 配列型
    39. cl = new A[10];
    40. a2 = (A[])cl; // Cloneable --> 配列型
    41. a2 = new B[10];
    42. b2 = (B[])a2; // Object --> インターフェース
    43. }
    44. }
    $ javac Cast22.java
    $ java Cast22
    

Top

inserted by FC2 system