instanceof简单用法
语法: 对象 instanceof 类;
含义:如果这个对象时这个类或者这个类的子类的实例化,那么结果及时ture, 否则 false。
常常用来判断一个类是否是某个类的子类,以此判断A类是否继承或者间接继承B类。
实例1:
一、对象A是类B的子类的实例化对象
package equalsTest; public class Test00
{
public static void main(String[] args)
{
Father f = new Father();
User1 u1 = new User1();
User2 u2 = new User2(); //u1对象是Father类的子类的实例化,所以返回ture
if(u1 instanceof Father)
{
System.out.println("ture");
}
else System.out.println("flase");
}
} //父类
class Father {} //子类1
class User1 extends Father {} //子类2
class User2 extends Father {}
此时返回的结果就是ture;u1对象是不是Father类的实例化,但是是Father子类的实例化,所以是ture
二、如果是下面这种情况:
如果返过来,父类的对象 instanceof 子类
if(f instanceof User1)
{
System.out.println("ture");
}
else System.out.println("flase");
结果是false; 此时f不是User1类的实例化对象,同时也是不是User1子类的实例化对象,所以false。
三、两个类有间接继承关系
package equalsTest; public class Test00
{
public static void main(String[] args)
{ Father f = new Father();
User1 u1 = new User1();
User2 u2 = new User2(); //u1对象是Father类的子类的实例化,所以返回ture
if(u2 instanceof Father)
{
System.out.println("ture");
}
else System.out.println("flase");
}
} //父类
class Father {} //子类1
class User1 extends Father {} //子类2间接继承Father
class User2 extends User1 {}
此时结果是:ture; 所以如果对象时这个类的实例化,或者子类的实例化,或者子类的子类的实例化。
所以任何对象 instanceof Object都是ture
instanceof简单用法的更多相关文章
- Android MultiType第三方库的基本使用和案例+DiffUtil的简单用法
1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面. 这种还是比较简单的类型.因为一个页面也就这种类型. ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
随机推荐
- 学习Flask框架
# -*- encoding: utf-8 -*- #导包 from flask import Flask #建立flask对象 app = Flask(__name__) #使用flask路由器 ...
- lambda函数式编程
一.接口注解(@FunctionalInterface) @FunctionalInterface interface Interface1 { public void print(); } publ ...
- 执行Runtime.exec()需要注意的陷阱
作为Java语言的一部分.java.lang包被隐藏的导入到每一个Java程序.这个包的表面陷阱,经常影响到大多数程序员.这个月,我将讨论运行时exec()方法时的潜伏陷阱. 陷阱4:当运行exec( ...
- REST架构简析(原论文整理)
0 引言 目前,互联网在社会中扮演的角色越来越重要.通过互联网为广大群众提供服务,也是互联网成功的关键.互联网服务架构目前大多数都是基于REST架构来完成的.REST从它诞生至今,可以说 ...
- thinkphp51 重定向 redirect()
thinkphp51 重定向 跨域 redirect() 可以重新定义新的路由,是fetch() 无法做到的.
- C 语言能不能在头文件定义全局变量?
可以,但一般不会将全局变量的定义写在头文件中. 因为如果多个 C 源文件都添加了头文件,很容易引起重定义的问题.这时候一般编译器都会提示:“multiple definition of... firs ...
- P1219 八皇后
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...
- 容器——list(双向链表)
做了一道list可以解决的题,才发现list多么的好 转自https://www.cnblogs.com/BeyondAnyTime/archive/2012/08/10/2631191.html 1 ...
- 初始IP协议
一.引言 发送一段TCP数据大致需要经过:用户封装 –> TCP封装 –> IP封装 –>帧封装 Note:用户封装没啥好说的,都是客户自己决定的,在一些简单的应用情况下,这个步骤可 ...
- python学习Day8 三种字符类型、文件操作
复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...