instanceof
来源:互联网 发布:初中生编程 编辑:程序博客网 时间:2024/06/08 17:51
引用原文地址:http://blog.csdn.net/cntanghai/article/details/6096976
Smaple1
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的实例"); }
Sample2
interface A{ } class B implements A{ } class C extends B{ } public class Iinstanceof { public static void main(String[] args) { A ab=new B(); A ac=new C(); B bc=new C(); B bb=new B(); C cc=new C(); //对象实现一个接口,用这个对象和这个接口进行instanceof判断,都为true。 System.out.println("ab instanceof A="+(ab instanceof A)); System.out.println("ac instanceof A="+(ac instanceof A)); System.out.println("bc instanceof A="+(bc instanceof A)); System.out.println("bb instanceof A="+(bb instanceof A)); System.out.println("cc instanceof A="+(cc instanceof A)); //对象和父类进行instanceof判断,都为true System.out.println("ab instanceof B="+(ab instanceof B)); System.out.println("ac instanceof B="+(ac instanceof B)); System.out.println("bc instanceof B="+(bc instanceof B)); System.out.println("bb instanceof B="+(bb instanceof B)); System.out.println("cc instanceof B="+(cc instanceof B)); //对象和他的子类进行instanceof判断为false System.out.println("ab instanceof C="+(ab instanceof C)); System.out.println("ac instanceof C="+(ac instanceof C)); System.out.println("bc instanceof C="+(bc instanceof C)); System.out.println("bb instanceof C="+(bb instanceof C)); System.out.println("cc instanceof C="+(cc instanceof C)); } } //程序输出: ab instanceof A=true ac instanceof A=true bc instanceof A=true bb instanceof A=true cc instanceof A=true ab instanceof B=true ac instanceof B=true bc instanceof B=true bb instanceof B=true cc instanceof B=true ab instanceof C=false ac instanceof C=true bc instanceof C=true bb instanceof C=false cc instanceof C=true
阅读全文
0 0
- instanceof?
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- instanceof
- 好用的插件总结
- 负载均衡
- pullToRefresh使用(实现listview上拉下拉)
- 记一次DG异常
- 项目开发的流程模块
- instanceof
- 打开r40平台tinav2.1下的AP6212A0版本的WIFI(分色排版)
- 字符串反转
- Linux系统下OpenCV2.x的安装与SIFT算法测试
- linux 用户限制
- Java 正则表达式
- python3 爬虫https的坑 -- 已解决
- node-web服务器简单搭建
- Oracle数据库使用pfile启动还是spfile启动---oracle