武汉java培训
达内武汉中心

15271940953

热门课程

Java instanceof 运算符

  • 时间:2016-05-20
  • 发布:微学苑
  • 来源:微学苑

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

instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型。请看下面的代码:
  1. publicfinalclassDemo{
  2. publicstaticvoidmain(String[]args){
  3. // 引用 People 类的实例
  4. Peopleobj=newPeople();
  5. if(objinstanceofObject){
  6. System.out.println("我是一个对象");
  7. }
  8. if(objinstanceofPeople){
  9. System.out.println("我是人类");
  10. }
  11. if(objinstanceofTeacher){
  12. System.out.println("我是一名教师");
  13. }
  14. if(objinstanceofPresident){
  15. System.out.println("我是校长");
  16. }
  17. System.out.println("-----------");// 分界线
  18. // 引用 Teacher 类的实例
  19. obj=newTeacher();
  20. if(objinstanceofObject){
  21. System.out.println("我是一个对象");
  22. }
  23. if(objinstanceofPeople){
  24. System.out.println("我是人类");
  25. }
  26. if(objinstanceofTeacher){
  27. System.out.println("我是一名教师");
  28. }
  29. if(objinstanceofPresident){
  30. System.out.println("我是校长");
  31. }
  32. }
  33. }
  34. classPeople{}
  35. classTeacherextendsPeople{}
  36. classPresidentextendsTeacher{}
运行结果:
我是一个对象
我是人类
-----------
我是一个对象
我是人类
我是一名教师

可以看出,如果变量引用的是当前类或它的子类的实例,instanceof 返回 true,否则返回 false。
上一篇:武汉java培训:多态和动态绑定
下一篇:武汉java培训:多态对象的类型转换

武汉Java培训:Java如何创建和启动多线程

武汉Java培训:java多线程教程

武汉Java培训:Java数组声明、创建和初始化

武汉Java培训:在Java常量中如何避免反模式

选择城市和中心
贵州省

广西省

海南省