「Java」instanceof演算子でインターフェースを実装するかどうかを判定するサンプル
構文
オブジェクトの変数名 instanceof インターフェース名
使用例
1.インタフェースの定義
package com.arkgame.study.java; //interface definition public abstract interface EmpParentInter { // method definition public abstract boolean isAuthUser(); }
2.親クラスの定義
package com.arkgame.study.java; // class definition public class EmpParentDemo implements EmpParentInter { String empId; Integer age; // parent constructor public EmpParentDemo(String empId, Integer age) { this.empId = empId; this.age = age; } @Override public boolean isAuthUser() { String res = "admin"; if (("admin").equals(res)) return true; return false; } }
3.子クラスの定義
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; } }
4.実行確認(main)
package com.arkgame.study.java; public class EmpSuperMethod { public static void main(String[] args) { // child object statement EmpChildDemo empChildObj = new EmpChildDemo("A001", 32, "AB"); // instanceof 子クラス boolean resA = empChildObj instanceof EmpChildDemo; // instanceof 親クラス boolean resB = empChildObj instanceof EmpParentDemo; // instanceof インタフェース boolean resC = empChildObj instanceof EmpParentInter; System.out.println("子クラス(sub class)のインスタンス:\n " + resA); System.out.println("親クラス(super class)のインスタンス:\n " + resB); System.out.println("インタフェース(interface)のインスタンス:\n " + resC); } }
5.実行結果
子クラス(sub class)のインスタンス:
true
親クラス(super class)のインスタンス:
true
インタフェース(interface)のインスタンス:
true