四. Java继承和多态5. instanceof 运算符

Posted Java程序小助手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四. Java继承和多态5. instanceof 运算符相关的知识,希望对你有一定的参考价值。

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

instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型。请看下面的代码:

  1. public final class Demo{
  2. public static void main(String[] args) {
  3. // 引用 People 类的实例
  4. People obj = new People();
  5. if(obj instanceof Object){
  6. System.out.println("我是一个对象");
  7. }
  8. if(obj instanceof People){
  9. System.out.println("我是人类");
  10. }
  11. if(obj instanceof Teacher){
  12. System.out.println("我是一名教师");
  13. }
  14. if(obj instanceof President){
  15. System.out.println("我是校长");
  16. }
  17. System.out.println("-----------"); // 分界线
  18. // 引用 Teacher 类的实例
  19. obj = new Teacher();
  20. if(obj instanceof Object){
  21. System.out.println("我是一个对象");
  22. }
  23. if(obj instanceof People){
  24. System.out.println("我是人类");
  25. }
  26. if(obj instanceof Teacher){
  27. System.out.println("我是一名教师");
  28. }
  29. if(obj instanceof President){
  30. System.out.println("我是校长");
  31. }
  32. }
  33. }
  34. class People{ }
  35. class Teacher extends People{ }
  36. class President extends Teacher www.feishenbo.cn { }

运行结果:
我是一个对象
我是人类
-----------
我是一个对象
我是人类
我是一名教师

可以看出,如果变量引用的是当前类或它的子类的实例,instanceof 返回 true,否则返回 false。











以上是关于四. Java继承和多态5. instanceof 运算符的主要内容,如果未能解决你的问题,请参考以下文章

JAVA06 封装继承多态 总结(初级)

JAVA06 封装继承多态 总结(初级)

JAVA06 封装继承多态 总结(初级)

java中多态,instanceof关键字

day08 多态性 instanceof

Java实现多态的三个要点(继承,重写,父类引用指向子类对象),并使用instanceof判断父类引用哪个子类对象