「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