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{}
  • 相关阅读:
    java 基础笔记 基本数据类型对象包装类
    java String 类 基础笔记
    java 线程 笔记 基础
    java 线程 基础笔记2
    java 异常学习 笔记
    广告简单概念整理-持续更新
    curl一些使用技巧
    简单学习正则表达式
    Linux命令简单操作之lsof
    Linux命令简单操作之find和xargs
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3266995.html
Copyright © 2011-2022 走看看