//instanceof是判断左侧对象是不是右侧类的实例

package myPackage;    

/**  
* instanceof运算符用法  
* 运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当  
* 左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false  
*   
* 说明:(1)一个类的实例包括本身的实例,以及所有直接或间接子类的实例  
* (2)instanceof左边操作元显式声明的类型与右边操作元必须是同种类或右边是左边父类的继承关系,  
* (3)不同的继承关系下,编译出错  
*/    
class Person {    
}    
class Student extends Person {    
}    
class Postgraduate extends Student {    
}    
class Animal {    
}    
public class Ex_instanceOf {    
public static void main(String[] args) {    
   instanceofTest(new Student());    
}    
/**  
* 这个程序的输出结果是:p是类Student的实例  
*   
* Person类所在的继承树是:Object<--Person<--Student<--Postgraduate。  
*   
* 这个例子中还加入一个Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。  
*   
* @param p  
*/    
public static void instanceofTest(Person p) {    
   // p 和 Animal类型不一样,彼此之间没有继承关系,编译会出错    
   // 提示错误:Incompatible conditional operand types Person and Animal    
   // if(p instanceof Animal){    
   // System.out.println("p是类Animal的实例");    
   // }    
   //下面代码的除了第一行都会输出    
   if (p instanceof Postgraduate) System.out.println("p是类Postgraduate的实例");    
   if (p instanceof Person) System.out.println("p是类Person的实例");    
   if (p instanceof Student) System.out.println("p是类Student的实例");    
   if (p instanceof Object) System.out.println("p是类Object的实例");    
    
}    
}

关于instanceof判断的条件的更多相关文章

  1. Linux入门第五天——shell脚本入门(中)基础语法之判断与条件

    一.判断式 利用 test 命令进行执行结果的判断(例如判断是否存在该文件):关于test  test:test 示例:结合回传值 $? 进行判断:关于$?:$? [root@localhost tm ...

  2. instanceof判断问题

    有时候我们根据instanceof来判断对象的数据类型 但是 用instanceof判断基本数据类型时 会不靠谱 例如 let str = '123' let str1 = new String(&q ...

  3. instanceof判断参数是否是给定的类型

    if(ofj instanceof CLOB) {//判断ofj是否是CLOB类型,如果是则把CLOB内容解析出来,放入TZNR字段中并返回 CLOB ft = (CLOB)ofj; String c ...

  4. 113-PHP使用instanceof判断变量是否为某个类对象

    <?php class ren{ //定义人类 } class mao{ //定义猫类 } $ren=new ren(); //实例化一个人类的对象 $mao=new mao(); //实例化一 ...

  5. js--typeof 和 instanceof 判断数据类型的区别及开发中的使用

    前言 日常的开发中,我们经常会遇到判断一个变量的数据类型或者该变量是否为空值的情况,你是如何去选择判断类型的操作符的?本文来总结记录一下我们开发人员必须掌握的关于 typeof 和 instanceo ...

  6. pig里面没有if:不能判断一个条件后决定一个执行步骤

    pig是处理流 的工具,所以数据集是流对象,处理步骤也是一样的. Pig中存在按条件处理流对象的方式有 1)filter X= FILTER A BY (f1 == 8); 2)CASE WHEN T ...

  7. instanceof判断的对象可以是接口

    instanceof是Java的一个二元操作符(运算符) 用法 boolean result = object instanceof class instanceof通过返回一个布尔值来指出,这个对象 ...

  8. 抽象类的继承,接口的实现,接口类型数组的使用,根据instanceof判断(返回)是否该是哪一个类型,类型的强转.

    总觉得之前第2处有点问题,果然. 还需要instanceof判定一下,然后还需要把数组Animal[]转为Pet的才有方法play()~~~!

  9. jajx 传参 需要 判断的 条件

    1.有没有权限. 2.数据类型 对不对 例如 id ,page  传过来时是str 类型, view中处理时需要转换成 int类型. 如果 不能转 就会报错.. 3.查询数据.数据不存在也要报错... ...

随机推荐

  1. 2017/05/08 java 基础 随笔

    1.null pointer exception 指针变量obj 没有指向任何空间 你调用它的方法和属性就会出错 2.基本数据类型值传递,不改变原值,调用后就会弹栈,局部变量随时消失 引用数据类型值传 ...

  2. 深入理解CMA【转】

    转自:https://www.csdn.net/article/a/2016-07-07/15839383 摘要:连续内存分配(简称CMA) 是一种用于申请大量的,并且物理上连续的内存块的方法,在LW ...

  3. oracle ip 改为 机器名

    1 hosts文件 添加                   ip  机器名   这一行 2 修改listner.ora 和tnsora.ora ip改为机器名 3 重启服务

  4. vi与vim

    vi 的使用 基本上 vi 共分为三种模式,分别是『一般模式』.『编辑模式』与『指令列命令模式』. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式).在 ...

  5. 利用mycat实现基于mysql5.5主从复制的读写分离

    整体步骤: 1.准备好两台服务器,一台作为主数据库服务器,一台作为从服务器,并安装好mysql数据库,此处略 2.配置好主从同步 3.下载JDK配置mycat依赖的JAVA环境,mycat采用java ...

  6. echarts地图显示不正常问题

    echarts2内置地图,而echarts3无内置地图,需要自己下载并导入. 在刚开始接触地图的时候,使用dreamweaver来构建页面,使用的编码不是UTF-8 代码是按照官方的拷贝下来的(我使用 ...

  7. 判断Javascript变量是否为空 undefined 或者null(附样例)

    1.变量申明未赋值 var type; //type 变量未赋值 1. type==undefined //true 2. type===undefined //true 3. typeof(type ...

  8. vuejs之v-if-ajax异步请求数据遇到的坑

    场景: params是异步请求获得的数据是一个对象,对象中又有chefHealthInfos数组 渲染时候会报错: 分析: 这是因为可以把v-if看成渲染了两次,两次结果params分别为{},{ch ...

  9. sublime text 3配置c/c++编译环境

    关于gcc和g++ 安装编译器是后面所有工作的基础,如果没有编译器,后面的一切都无从谈起.在windows下使用gcc和g++,是通过安装MinGW实现的. 安装MinGW MinGW是Minimal ...

  10. easyUI拖动:draggable()方法运用

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>de ...