A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李贺晓 中级黑马   /  2012-10-16 14:41  /  887 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

instanceof是Java的一个二元操作符,和==,>等的用法一样,主要是用来测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据,可以用在子类继承中的实例是否是父类的实现
用法:result = object instance of class
参数:result
变量(必选项):object
已定义的对象类(必选项):class
说明:如果object是class的一个实例,则instanceof运算符返回true。如果object不是指定类的一个实例,或者object是null,则返回false。


class Person{}
class Student extends Person{}
class Animal{}
public class InstanceofTester {
public static void main(String[] args) {
  instanceofTest(new Student());
}
public static void instanceofTest(Person p){
  // 判断p的真正类型
if(p instanceof Student){
   System.out.println("p是类Student的实例");
  } else if(p instanceof Person){
   System.out.println("p是类Person的实例");
  } else if(p instanceof Object) {
   System.out.println("p是类Object的实例");
  }
  /*if(p instanceof Animal){//此错编译错误
   System.out.println("p是类Animal的实例");
  }*/
}
}这个程序的输出结果是:p是类Student的实例
Person类所在的继承树是:Student-->Person-->Object
Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马