为了账号安全,请及时绑定邮箱和手机立即绑定

instanceof怎么使用?

instanceof怎么使用?

慕九州6114518 2016-11-05 13:21:23
查看完整描述

3 回答

已采纳
?
破东风一路向北

TA贡献8条经验 获得超5个赞

对象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....


查看完整回答
反对 回复 2016-11-05
?
Tobey_滔

TA贡献242条经验 获得超128个赞

boolean bool = object instanceof class;

object是你的对象

class是类

查看完整回答
反对 回复 2016-11-05
  • 3 回答
  • 1 关注
  • 1394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信