zoukankan      html  css  js  c++  java
  • Java知识点:instanceof关键字

    介绍

    • 格式:a instanceof B,其中a是一个variable(设a所指向的对象的类型命名为A,即A是一个type。
    • 功能:判断A是否 is-a B。
    • 当a=null时,始终返回false。
    • 当B=Object时,始终返回true。

    可能返回的结果

    • true:A is-a B。
    • false:
      • B是一个类时,A和B在一棵继承树,但是A is-not-a B。
      • B是一个接口时,A不是final的,A is-not-a B(不要求A和B要在一棵继承树上)。
    • Compile Error
      •  B是一个类时,A和B不在一棵继承树上,则Compile Error。
      •  B是一个接口时,如果A是final的且A和B不在一棵继承树上,则Compile Error。

    实验一:接口的情况

     1 interface A{}
     2 class B implements A{}
     3 class C{}
     4 final class D{}
     5 class Demo01
     6 {
     7     public static void main(String args[])
     8     {
     9         B b = new B();
    10         C c = new C();
    11         D d = new D();
    12         System.out.println(b instanceof A);    //true
    13         System.out.println(c instanceof A);    //false
    14         System.out.println(d instanceof A);    //Compile Error:不可转换的类型
    15     }
    16 }

    实验二:类的情况

     1 public class Instanceof01
     2 {
     3     public static void main(String[] args) {
     4         A a = new A();
     5         A b = new B();
     6         System.out.println((a instanceof B));    // A isn't-a B,因此输出false
     7         System.out.println((b instanceof A));    // B is-a A,因此输出true
     8         System.out.println((b instanceof B));    // B is-a B,因此输出true
     9         System.out.println((a instanceof C));    // Compile Error:不可转换的类型,因为类A和类C不在一棵继承树上
    10     }
    11 }
    12 class A{}
    13 class B extends A{}
    14 class C{}
  • 相关阅读:
    Jquery超简单遮罩层实现代码
    java中Token验证
    基于Token的WEB后台认证机制
    jsp页面数据回显(select下拉选择框)
    ckeditor 绑定事件
    ckeditor 触发事件(案例)
    Linux sed命令学习
    字符串 全排列生成问题
    算法导论第九章 第K顺序统计量
    字符串相似度算法 递归与动态规划求解分析
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3266995.html
Copyright © 2011-2022 走看看