「Java」getSuperclass()でオブジェクトのスーパークラスを取得するサンプル

説明
public Class<? super T> getSuperclass()
このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)のスーパー・クラスを表すClassを返します。
このClassが、Objectクラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。
使用例
1.親クラス(EmpParentDemo)の定義

package com.arkgame.study.java;

// class definition
public class EmpParentDemo {

      String empId;
      Integer age;

      // parent constructor
      public EmpParentDemo(String empId, Integer age) {
            this.empId = empId;
            this.age = age;
      }

      // parent method print definition
      public void print() {
            System.out.println("Parent class method is called");
      }

}

2.子クラス(EmpChildDemo)の定義

package com.arkgame.study.java;

// child class extends
public class EmpChildDemo extends EmpParentDemo {

      String depId;

      // child class constructor
      public EmpChildDemo(String empId, Integer age, String depId) {
            super(empId, age);
            this.depId = depId;
      }

      // override method
      @Override
      public void print() {
            System.out.println("Child class method is called");
      }

}

3.getSuperclass()とgetClass()でエンティティ(クラス、インタフェース等)を表すClassを返す

package com.arkgame.study.java;

public class SuperClassDemo {

      public static void main(String[] args) {

            // parent class object statement
            EmpParentDemo emP = new EmpParentDemo("user001", 32);
            // child class object statement
            EmpChildDemo emCh = new EmpChildDemo("user001", 32, "dep001");

            System.out.println("*******parent class operation*****");
            Class<?> cftA;
            cftA = emP.getClass();
            System.out.println("<Parent> class name " + cftA.getName());
            cftA = emP.getClass().getSuperclass();
            System.out.println("<Parent> Super class name " + cftA.getName());
            System.out.println("");
            System.out.println("*******Child class operation*****");
            Class<?> cftB;
            cftB = emCh.getClass();
            System.out.println("<Child> class name " + cftB.getName());
            cftB = emCh.getClass().getSuperclass();
            System.out.println("<Child> Super class name " + cftB.getName());

      }

}

4.実行結果

*******parent class operation*****
<Parent> class name com.arkgame.study.java.EmpParentDemo
<Parent> Super class name java.lang.Object

*******Child class operation*****
<Child> class name com.arkgame.study.java.EmpChildDemo
<Child> Super class name com.arkgame.study.java.EmpParentDemo

Java

Posted by arkgame