猿问

instanceof怎么使用?

慕九州6114518
浏览 1395回答 3
3回答

破东风一路向北

对象instanceof类名,用来判断对象是不是该类的对象,是则返回true,不是返回false。这个关键字比较常用的地方:        对象向下转型。首先,发生向下转型(子类  对象名 = (子类)父类对象)关系前必须发生向上转型(父类  对象名 =   new 子类)。在一个父类有很多子类的情况下,如果要发生向下转型,就不知道要转向哪个子类,这时候就用                     instanceof关键字来判断该对象到底是哪个子类的对象,然后再强制转型。见如下代码:class A{     public void print(){         System.out.println("A....");     } } class B extends A{      public void print(){         System.out.println("A....B");     }      public void print1(){         System.out.println("B....");     } } class C extends A{      public void print(){            System.out.println("A....C");     }      public void print1(){         System.out.println("C....");     } } public Test{     public static void main(String[] args){         A a1 = new B();//发生向上转型:(父类  对象名 =  new 子类)         //向上转型的对象能调用父类的方法,但实际调用的是new后面的子类重写后的方法,但是不能调用子类独有的方法,比如这里B中的print1()方法,要调用B中的print1()方法,就要发生向下转型         a1.print();         //使用instanceof         if(a1 instanceof B){             B b1 = (B) a1;//向下转型             b1.print1();//调用B中的print1         }           if(a1 instanceof C){             C c1 = (B) a1;//向下转型             c1.print1();//调用C中的print1         }     } } 运行结果是: A....B B....

Tobey_滔

boolean bool = object instanceof class;object是你的对象class是类
随时随地看视频慕课网APP

相关分类

Java
我要回答