zoukankan      html  css  js  c++  java
  • 四. 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。

  • 相关阅读:
    JSP学习-JSP访问数据库-JavaBean封装
    JSP学习-sessionDemo
    第十次随笔
    第九次随笔
    第八次随笔
    第七次随笔
    第六次随笔
    第五次随笔
    第四次随笔
    第三次随笔
  • 原文地址:https://www.cnblogs.com/ok932343846/p/6768606.html
Copyright © 2011-2022 走看看