经典错误一
此错误为空指针异常,也就是说我们在编程的过程中创建的一个引用的值已经被我们清空,而我们依然使用这个引用去调用那个对象造成的,解决办法就是从新将这个引用和即将被这个引用调用的对象之间建立关系。
Animal animal = new Animal;
animal = null;
animal.move();
上述这种调用方式就会出现空指针异常错误提示解决办法如下:
Animal animal = new Animal;
animal = null;
animal =new Animal;
animal.move();
经典错误二
上述错误类转换异常(只会出现在向下转型的过程中)
Animal xiaoHua = new Cat();
Bird xiaoLan = (Bird)xiaoHua
虽然在编译阶段上述语句并不会报错但是在运行阶段上述语句就会引发类转换异常的错误
主要是因为xiaoHua实际上是Cat类型的引用而我们要将其转换为Bird类型的引用这是不符合Java运行语法的,为了避免出现上述错误我们可以使用以下机制
if(xiaoHua instanceOf Bird){
Bird xiaoLan = (Bird)xiaoHua
}else if(xiaoHua instanceOf Cat){
Cat xiaoLan = (Cat)xiaoHua
}
(xiaoHua instanceOf Bird) //判断xiaoHua实际上是不是Bird类型的对象如果是的话可以转不是的话不可以转换
此语句的返回值只有true 和 false 两种结果。
向上转型时是不会发生类转换异常错误的,这种错误只发生在向下转型的过程中。