「Java」親子クラスの明示的にダウンキャスト(downcast)をするサンプル

書式
子クラス オブジェクト名A =(子クラス)親クラスのオブジェクト名B
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
// 親クラス
class ParentCftA {
public String testA() {
return "Parent A001";
}
}
// 子クラス
class ParentCftB extends ParentCftA {
public String testB() {
return "Child B002";
}
}
public class ParentObjMeiji {
public static void main(String[] args) {
// 子クラスを生成して親クラスの変数名に格納
ParentCftA pta = new ParentCftB();
// 子クラスの型の変数にダウンキャストを行う
ParentCftB ptb = (ParentCftB) pta;
System.out.println("result1: " + ptb.testA());
System.out.println("result2: " + ptb.testB());
}
}
package com.arkgame.study; // 親クラス class ParentCftA { public String testA() { return "Parent A001"; } } // 子クラス class ParentCftB extends ParentCftA { public String testB() { return "Child B002"; } } public class ParentObjMeiji { public static void main(String[] args) { // 子クラスを生成して親クラスの変数名に格納 ParentCftA pta = new ParentCftB(); // 子クラスの型の変数にダウンキャストを行う ParentCftB ptb = (ParentCftB) pta; System.out.println("result1: " + ptb.testA()); System.out.println("result2: " + ptb.testB()); } }
package com.arkgame.study;

// 親クラス
class ParentCftA {
      public String testA() {
            return "Parent A001";

      }
}

// 子クラス
class ParentCftB extends ParentCftA {
      public String testB() {
            return "Child B002";
      }

}

public class ParentObjMeiji {

      public static void main(String[] args) {

            // 子クラスを生成して親クラスの変数名に格納
            ParentCftA pta = new ParentCftB();

            // 子クラスの型の変数にダウンキャストを行う
            ParentCftB ptb = (ParentCftB) pta;
            System.out.println("result1: " + ptb.testA());
            System.out.println("result2: " + ptb.testB());

      }

}

実行結果
result1: Parent A001
result2: Child B002

Java

Posted by arkgame