Java instanceof 运算符
网站文章 2026-09-24 03:59:11 1 0

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

  更多技术教程,请关注梦主主页www.cnhack90.com

文章说明
本文标签:
©版权声明
本站提供的一切软件、教程和游戏辅助仅限用于娱乐和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集,版权争议与本站无关。如有侵权请邮件与我们联系处理。敬请谅解!6594404@qq.com