强制转换:使用多态性时,无法调用子类特有方法,可以强制转换
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 版权协议,转载请附上原文出处链接和本声明。