JAvaにおけるinstanceofの使い方

7271 ワード

instanceof

instanceof Java、php        (   ), ==,>,<      。

          ,    Java      。

                      ,  boolean     。

                       。   c#  is   。

java  instanceof                         。

instanceof            ,                        。

result = object instanceof class

Result:    。

Object:   。       。

Class:   。         。

   object   class      ,  instanceof       trueobjectobject   nullfalse。

package com.instanceoftest;

interface A{ }

class B implements A{ }

class C extends B { }

class instanceoftest {

public static void main(String[] args){

A a=null;

B b=null;

boolean res;

System.out.println("instanceoftest test case 1: ------------------");

res = a instanceof A;

System.out.println("a instanceof A: " + res);

  

  res = b instanceof B;

  System.out.println("b instanceof B: " + res);

System.out.println("
instanceoftest test case 2: ------------------
"); a=new B(); b=new B(); res = a instanceof A; System.out.println("a instanceof A: " + res); res = a instanceof B; System.out.println("a instanceof B: " + res); res = b instanceof A; System.out.println("b instanceof A: " + res); res = b instanceof B; System.out.println("b instanceof B: " + res); System.out.println("
instanceoftest test case 3: ------------------
"); B b2=(C)new C(); res = b2 instanceof A; System.out.println("b2 instanceof A: " + res); res = b2 instanceof B; System.out.println("b2 instanceof B: " + res); res = b2 instanceof C; System.out.println("b2 instanceof C: " + res); }   }   /*result: instanceoftest test case 1: ------------------ a instanceof A: false b instanceof B: false instanceoftest test case 2: ------------------ a instanceof A: true a instanceof B: true b instanceof A: true b instanceof B: true instanceoftest test case 3: ------------------ b2 instanceof A: true b2 instanceof B: true b2 instanceof C: true : String s = "I AM an Object!"; boolean isobject = s instanceof Object; String , String , instanceof Object , , , true, isobject true。 instanceof 。 , : public class Bill {// } public class PhoneBill extends Bill {// } public class GasBill extends Bill {// } , Bill , 。 , Bill , instanceof : public double calculate(Bill bill) { if (bill instanceof PhoneBill) { // } if (bill instanceof GasBill) { // } ... } 。 , 。 , , 。 , : public double calculate(PhoneBill bill) { // } public double calculate(GasBill bill) { // } , instanceof , 。 instanceof , : class Manager extends Employee ---------------------------------------------------------- public void doSomething(Employee e) { if ( e instanceof Manager){ Manager m = (Manager) e ; } } 1. Boolean , 。...instanceof ... Boolean , 。 2. instanceof ...instanceof ... 3. 4.