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{}
  • 相关阅读:
    FarPoint FpSpread控件的使用收藏
    在Oracle中使用Guid
    oracle 语句的妙用例子
    让服务器iis支持.apk文件下载的设置方法
    oracle 自动生存清库脚本
    winform 消息通讯组件实习
    在css中使用边框做三角形
    JavaScript闭包和ajax
    JavaScript面向对象
    正则表达式
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3266995.html
Copyright © 2011-2022 走看看