面向对象中(instanceof的使用)

  • Post author:
  • Post category:其他


强制转换:使用多态性时,无法调用子类特有方法,可以强制转换

Person person=new Student();

Student student=(Student) person;//强制转换

student.study;//study(Student类特有方法)

使用强制转换时,可能出现ClassCastExpection的异常。

Teacher teacher=(Teacher)person;//强制转换错误

instanceof关键字的使用

a instanceof A:判断对象a是否是类A的实例。如果是返回true;否则返回false

使用情景:为了避免在向下转型时出现ClassCastExpection的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型。

if(person instanceof Student)(

Student student=(Student)person;

student.study;//调用Student类特有方法

System.out.println(“转型成功”);

)

如果a instanceof A返回true,则a instanceof B也返回true。

其中,类B是类A的父类。



版权声明:本文为weixin_56760130原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。