博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java关键字——instanceof
阅读量:5795 次
发布时间:2019-06-18

本文共 2089 字,大约阅读时间需要 6 分钟。

Java中可以使用instanceof关键字判断一个对象到底是哪一个类的实例

格式:对象 instance 类  返回 boolean类型

通过子类实例化的对象同时是子类和父类的实例,无论是直接声明子类还是声明了父类,然后再通过子类向上转型

如果直接通过父类实例化本类对象,则一定不是子类的实例

//=================================================// File Name       :	ploy_up_demo//------------------------------------------------------------------------------// Author          :	Common// 类名:C_1// 属性:// 方法:class C_1{												// 定义接口C_1	public void fun1(){							//定义fun1()方法		System.out.println("C_1--->public void fun1");	}		public void fun2(){							//定义fun2()方法		this.fun1();	}}//类名:D_1//属性://方法:class D_1 extends C_1{												//子类D_1继承父类C_1	public void fun1(){		System.out.println("D_1--->public void fun1");	//覆写父类中的fun1()方法	}		public void fun3(){															System.out.println("D_1--->public void fun3");	//子类自己定义方法	}}//类名:E_1//属性://方法:class E_1 extends C_1{												//子类E_1继承父类C_1	public void fun1(){		System.out.println("E_1--->public void fun1");	//覆写父类中的fun1()方法	}		public void fun5(){															System.out.println("E_1--->public void fun3");	//子类自己定义方法	}}//主类//Function        : 	对象的多态性,对象向上转型public class ploy_up_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根//		D_1 b = new D_1();			//定义子类的实例化对象//		C_1 a = b;						//声明一个父类,发生向上转型的关系,子类赋值给父类//		a.fun1();							//此方法被子类覆写过,虽然a是父类,但是调用的是子类的fun1()方法		//		C_1 c = new D_1();			//声明一个父类,发生了向上转型,子类赋值给父类//		D_1 d = (D_1)c;				//声明的父类强制转换成子类,发生了向下转型关系//		d.fun1();//		d.fun2();//		d.fun3();		//		fun(new C_1());							//传递C_1类的实例,产生向上转型//		fun(new D_1());							//传递D_1类的实例,产生向上转型				C_1 a = new D_1();						//发生向上转型		System.out.println("C_1 a = new D_1():"+(a instanceof C_1));		System.out.println("C_1 a = new D_1():"+(a instanceof D_1));				C_1 a_1 = new C_1();					//声明一个父类		System.out.println("C_1 a = new C_1():"+(a_1 instanceof C_1));		System.out.println("C_1 a = new C_1():"+(a_1 instanceof D_1));				D_1 a_2 = new D_1();						//声明一个子类		System.out.println("D_1 a = new D_1():"+(a_2 instanceof C_1));		System.out.println("D_1 a = new D_1():"+(a_2 instanceof D_1));	}		public static void fun(C_1 c){	//接收父类对象,不用写多次分别接收子类对象		c.fun1();	}}

 

转载地址:http://fbbfx.baihongyu.com/

你可能感兴趣的文章
利用rand7()构造rand10()
查看>>
MySQL 备份与恢复
查看>>
吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本
查看>>
easyui中combobox的值改变onchang事件
查看>>
TEST
查看>>
PAT A1037
查看>>
ReactiveSwift源码解析(三) Signal代码的基本实现
查看>>
(六)Oracle学习笔记—— 约束
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Open Graph Protocol(开放内容协议)
查看>>
Ubuntu18.04中配置QT5.11开发环境
查看>>
Exception的妙用
查看>>
知识图谱在互联网金融中的应用
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
【docker】关于docker 中 镜像、容器的关系理解
查看>>
information_schema系列五(表,触发器,视图,存储过程和函数)
查看>>
瓜子二手车的谎言!
查看>>
[转]使用Git Submodule管理子模块
查看>>