4000336031 微信 li1377174255

达内Java培训学校

Java instanceof 运算符

来源:达内Java培训学校 发布时间:2016/12/15 13:59:24

多态性带来了一个问题,就是如何判断一个变量所实际引用的对象的类型 。 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。

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 达内Java培训学校

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)