java中的instanceof关键字

来源:互联网 发布:加拿大研究生留学 知乎 编辑:程序博客网 时间:2024/05/22 00:28

一、作用

判断一个对象属于哪个类的实例

二、使用方法

对象  instanceof  类  //返回的是Boolean类型

三、代码示例

package lkp;//定义一个类Aclass A{public void fun1(){System.out.println("A——1");}public void fun2(){this.fun1();}}//定义一个子类B,继承Aclass B extends A{public void fun1(){//覆写父类中的fun1方法System.out.println("B——1");}public void fun3(){//子类自己定义的方法System.out.println("B——3");}}//定义一个子类C,继承Aclass C extends A{public void fun1(){//覆写父类的fun1方法System.out.println("C——1");}public void fun4(){//子类自己定义的方法System.out.println("C——4");}}class Test{public static  void main(String args []){A a = new B();//向上转型实例化A类对象System.out.println("A a = new B():" + (a instanceof A));System.out.println("A a = new B():" + (a instanceof B));A a1 = new A();//构造实例化对象System.out.println("A a1 = new A():" + (a1 instanceof A));System.out.println("A a1 = new A():" + (a1 instanceof B));}}

四、在向下转型前进行验证

package lkp;//定义一个类Aclass A{public void fun1(){System.out.println("A——1");}public void fun2(){this.fun1();}}//定义一个子类B,继承Aclass B extends A{public void fun1(){//覆写父类中的fun1方法System.out.println("B——1");}public void fun3(){//子类自己定义的方法System.out.println("B——3");}}//定义一个子类C,继承Aclass C extends A{public void fun1(){//覆写父类的fun1方法System.out.println("C——1");}public void fun4(){//子类自己定义的方法System.out.println("C——4");}}class Test{public static  void main(String args []){fun(new B());//传递B类的实参,产生向上转型fun(new C());//传递C类的实参,产生向上转型}public static void fun(A a){//接收父类的对象,分别调用各个子类单独定义的方法a.fun1();if(a instanceof B){//判断是否是B类的实例B b = (B)a;//进行向下转型b.fun3();//调用子类自己定义方法}if(a instanceof C){//判断是否是C类的实例C c = (C)a;//进行向下转型c.fun4();//调用子类自己定义的方法}}}


0 0