黑马程序员技术交流社区

标题: instanceof总结 [打印本页]

作者: 李贺晓    时间: 2012-10-16 14:41
标题: instanceof总结
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的右操作数。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2