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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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");
}
}
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"); } }
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)の定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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");
}
}
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"); } }
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を返す

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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());
}
}
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()); } }
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