本章目标
掌握instanceof关键字的作用及使用时机
可以使用instanceof对对象的转型进行安全验证
instanceof 关键字
在java中可以使用instanceof关键字判断一个对象到底是那个类的实例
对象 instanceof 类 —> 返回boolean类型
验证instanceof关键字的作用
class A{//定义类 A public void fun1(){//定义 fun1() 方法 System.out.println("A --> public void fun1(){}"); } public void fun2(){//定义 fun2() 方法 this.fun1(); } } class B extends A{//子类通过 extends 继承父类 public void fun1(){//覆写父类中的 fun1() 方法 System.out.println("B --> public void fun1(){}"); } public void fun3(){//子类自己定义的方法 System.out.println("B --> public void fun3(){}"); } } public class InstanceofDemo01 { public static void main(String[] args) { A a1 = new B();//通过向上转型实例化 A类对象 System.out.println("A a1 = new B():"+(a1 instanceof A)); System.out.println("A a1 = new B():"+(a1 instanceof B)); A a2 = new A();//通过A类的构造实例化本类对象 System.out.println("A a2 = new A():"+(a2 instanceof A)); System.out.println("A a2 = new A():"+(a2 instanceof B)); } /*结果: * B --> public void fun1(){} * */ }
在向下转型前进行验证
class A{//定义类 A public void fun1(){//定义 fun1() 方法 System.out.println("A --> public void fun1(){}"); } public void fun2(){//定义 fun2() 方法 this.fun1(); } } class B extends A{//子类通过 extends 继承父类 public void fun1(){//覆写父类中的 fun1() 方法 System.out.println("B --> public void fun1(){}"); } public void fun3(){//子类自己定义的方法 System.out.println("B --> public void fun3(){}"); } } class C extends A{//子类通过 extends 继承父类 public void fun1(){//覆写父类中的 fun1() 方法 System.out.println("C --> public void fun1(){}"); } public void fun5(){//子类自己定义的方法 System.out.println("C --> public void fun5(){}"); } } public class InstanceofDemo02 { public static void main(String[] args) { fun(new B());//传递 B 类实例,产生向上转型 fun(new C());//传递 C 类实例,产生向上转型 } //此方法可以分别调用各自子类单独定义的方法 public static void fun(A a){ a.fun1(); if(a instanceof B){//判断是否有 B 类实例 B b = (B)a;//进行向下转型 b.fun3();//调用子类自己定义的方法 } if(a instanceof C){//判断是否有 C 类实例 C c = (C)a;//进行向下转型 c.fun5();//调用子类自己定义的方法 } } /*结果: * B --> public void fun1(){} * B --> public void fun3(){} * C --> public void fun1(){} * C --> public void fun5(){} * */ }
相关推荐
因为在项目中遇到了instanceof,因此总结了对instanceof关键字的理解,有需要的可以下载来看看。
java学习-java中的继承extents和instanceof关键字
第05章 面向对象(下) 09 Instanceof关键字
Java中instanceOf关键字的用法及特性详解.rar
day10_22_用instanceof关键字进行类型判断
第21天,super,instanceof关键字的使用以及多态的认识
Java 实例 - instanceof 关键字用法源代码-详细教程.zip
288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288).rar
计算机后端-Java-Java核心基础-第14章 面向对象06 05. instanceof关键字的使用.avi
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。这篇文章主要介绍了老生常谈Java中instanceof关键字的理解,需要的朋友可以参考下
主要介绍了PHP中instanceof关键字详解及instanceof关键字有什么作用的相关资料,需要的朋友可以参考下
介绍了java final 和instanceof 关键字的区别,有需要的朋友可以参考一下
instanceof 马克-to-win java视频的详细的描述介绍
instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例.这篇文章主要介绍了Android中Java instanceof关键字全面解析的相关资料,需要的朋友可以参考下
RednaxelaFX,从事JVM研发戴翔、咚咔、evenX86 等人赞同在进入正题前先得提一句:既然楼主提问的背景是“被面试问到”,那很重要的一点
主要介绍了Java instanceof关键字的的进一步理解,本文用一些实例讲解了instanceof操作符的一些知识,需要的朋友可以参考下