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

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

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