Java的Instanceof关键字怎么使用
今天小编给大家分享一下Java的Instanceof关键字怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
举例:
classA{
publicvoideat(){
System.out.println("父类A吃饭");
}
}
classBextendsA{
publicvoideat(){
System.out.println("子类B吃饭");
}
}
classCextendsA{
publicvoideat(){
System.out.println("子类C吃饭");
}
}
publicclassShiyan{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Aa=newB();//向上转型,将类B的实例化赋给类A的对象
a.eat();//通过类A的对象去调用,类B的eat方法
//ainstanceofA关键字的作用就是判断类A的实例化对象能不能赋给对象a。
Cc=(C)a;//使用强制转换,将B类的实例化对象强制转成C的实例化对象。编译器可以编译,但是运行时会报转换异常的错误。
a.eat();
}
未使用Instanceof关键字运行如下:
编译器报了类型转换异常
子类B吃饭
Exceptioninthread"main"java.lang.ClassCastException:classpolymorphism.Bcannotbecasttoclasspolymorphism.C(polymorphism.Bandpolymorphism.Careinunnamedmoduleofloader'app')
atpolymorphism.Shiyan.main(Shiyan.java:28)
改进后使用关键字Instanceof代码:
此时使用关键字Instanceof,判断是否能转换成功
classA{
publicvoideat(){
System.out.println("父类A吃饭");
}
}
classBextendsA{
publicvoideat(){
System.out.println("子类B吃饭");
}
}
classCextendsA{
publicvoideat(){
System.out.println("子类C吃饭");
}
}
publicclassShiyan{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Aa=newB();//向上转型,将类B的实例化赋给类A的对象
a.eat();//通过类A的对象去调用,类B的eat方法
//ainstanceofA关键字的作用就是判断类A的实例化对象能不能赋给对象a。
booleanisturue=ainstanceofC;
System.out.println(isturue);
}
改进后运行结果:
子类B吃饭
false
以上就是“Java的Instanceof关键字怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。