instanceof 演算子
x instanceof Y // true か false
trueを返す条件
スーパクラスHoge とそのサブクラスSubHogeがあるとき、
1 public class Main { 2 public static void main(String[] args) { 3 Hoge h = new Hoge(); 4 SubHoge sh = new SubHoge(); 5 6 System.out.println(h instanceof Hoge); //条件1にあてはまる true 7 System.out.println(sh instanceof SubHoge); //条件1にあてはまる true 8 System.out.println(sh instanceof Hoge); //条件2にあてはまる true 9 10 } 11 }
interfaceのInと、それを実装しているクラスInTerがあるとき、
1 public class TestIn { 2 public static void main(String[] args) { 3 InTer it = new InTer(); 4 System.out.println(it instanceof Inter); // 条件1にあてはまる true 5 System.out.println(it instanceof In); // 条件3にあてはまる true 6 } 7 }
抽象クラスAbと、その実装クラスAbabがあるとき、
1 public class TestAb { 2 public static void main(String[] args) { 3 Abab ab = new Abab(); 4 System.out.println(ab instanceof Abab); // 条件1にあてはまる true 5 System.out.println(ab instanceof Ab); // 条件3にあてはまる true 6 } 7 }