千家信息网

Java的Instanceof关键字怎么使用

发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,今天小编给大家分享一下Java的Instanceof关键字怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获
千家信息网最后更新 2025年02月12日Java的Instanceof关键字怎么使用

今天小编给大家分享一下Java的Instanceof关键字怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

举例:

class A{

public void eat() {

System.out.println("父类A吃饭");

}

}

class B extends A{

public void eat() {

System.out.println("子类B吃饭");

}

}

class C extends A{

public void eat() {

System.out.println("子类C吃饭");

}

}

public class Shiyan {

public static void main(String[] args) {

// TODO Auto-generated method stub

A a=new B();//向上转型,将类B的实例化赋给类A的对象

a.eat();//通过类A的对象去调用,类B的eat方法

// a instanceof A 关键字的作用就是判断 类A的实例化对象能不能赋给对象a。

C c=(C)a;//使用强制转换,将B类的实例化对象强制转成C的实例化对象。编译器可以编译,但是运行时会报转换异常的错误。

a.eat();

}

未使用Instanceof关键字运行如下:

编译器报了类型转换异常

子类B吃饭
Exception in thread "main" java.lang.ClassCastException: class polymorphism.B cannot be cast to class polymorphism.C (polymorphism.B and polymorphism.C are in unnamed module of loader 'app')
at polymorphism.Shiyan.main(Shiyan.java:28)

改进后使用关键字Instanceof代码:

此时使用关键字Instanceof,判断是否能转换成功

class A{

public void eat() {

System.out.println("父类A吃饭");

}

}

class B extends A{

public void eat() {

System.out.println("子类B吃饭");

}

}

class C extends A{

public void eat() {

System.out.println("子类C吃饭");

}

}

public class Shiyan {

public static void main(String[] args) {

// TODO Auto-generated method stub

A a=new B();//向上转型,将类B的实例化赋给类A的对象

a.eat();//通过类A的对象去调用,类B的eat方法

// a instanceof A 关键字的作用就是判断 类A的实例化对象能不能赋给对象a。

boolean isturue=a instanceof C;

System.out.println(isturue);

}

改进后运行结果:

子类B吃饭
false

以上就是"Java的Instanceof关键字怎么使用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0