zoukankan      html  css  js  c++  java
  • [Java学习] Java 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.

      18. System.out.println("-----------"); // 分界线

      19.

      20. // 引用 Teacher 类的实例

      21. obj = new Teacher();

      22. if(obj instanceof Object){

      23. System.out.println("我是一个对象");

      24. }

      25. if(obj instanceof People){

      26. System.out.println("我是人类");

      27. }

      28. if(obj instanceof Teacher){

      29. System.out.println("我是一名教师");

      30. }

      31. if(obj instanceof President){

      32. System.out.println("我是校长");

      33. }

      34. }

      35. }

      36.

      37. class People{ }

      38. class Teacher extends People{ }

      39. class President extends Teacher{ }

      运行结果:

      我是一个对象

      我是人类

      -----------

      我是一个对象

      我是人类

      我是一名教师

      (编辑:雷林鹏 来源:网络)

  • 相关阅读:
    Quartz使用及注意事项
    .Net下性能调优浅析
    .Net下Redis使用注意事项
    WCF服务开发与调用的完整示例
    超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
    C# DES
    webService访问加密-Soapheader
    WebMethod 属性
    互联网 免费的WebService接口
    利用XPath解析带有xmlns的XML文件
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9197663.html
Copyright © 2011-2022 走看看