当前位置 : 首页> Java教程 > 如何使用Java instanceof 运算符

如何使用Java instanceof 运算符

时间:2016-08-04 15:53   已访问:221次

关于Java instanceof 运算符的介绍还是比较少的,今天IT培训网小编就来给大家讲解下instanceof 运算符的用法、作用及注意事项吧,希望可以帮助Java爱好者顺利学习这些知识点。

用法:

(类型变量 instanceof 类|接口)

作用:

instanceof 操作符用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是则返回true 否则就返回false。

注意:

· instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系否则会引发编译错误。

多态性带来了一个问题,就是如何判断一个变量所实际引用的对象的类型 。 C++使用runtime-type information(RTTI),Java 使用 instanceof 操作符。

instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型。请看下面的代码:

public final class Demo{

    public static void main(String[] args) {

        // 引用 People 类的实例

        People obj = new People();

        if(obj instanceof Object){

            System.out.println("我是一个对象");

        }

        if(obj instanceof People){

            System.out.println("我是人类");

        }

        if(obj instanceof Teacher){

            System.out.println("我是一名教师");

        }

        if(obj instanceof President){

            System.out.println("我是校长");

        }

        System.out.println("-----------");  // 分界线

        // 引用 Teacher 类的实例

        obj = new Teacher();

        if(obj instanceof Object){

            System.out.println("我是一个对象");

        }

        if(obj instanceof People){

            System.out.println("我是人类");

        }

        if(obj instanceof Teacher){

            System.out.println("我是一名教师");

        }

        if(obj instanceof President){

            System.out.println("我是校长");

        }

    }

}

class People{ }

class Teacher extends People{ }

class President extends Teacher{ }

运行结果:

我是一个对象

我是人类

-----------

我是一个对象

我是人类

我是一名教师

可以看出,如果变量引用的是当前类或它的子类的实例,instanceof 返回 true,否则返回 false。


推荐内容