Java中父类与子类之间的转化

  1. 子类转到父类是自动的,必然的,因为“保时捷”一定是“轿车”,这不用怀疑。

  2. 父类向子类转型,是可能的,因为一辆“轿车”有可能是“保存时捷”,也有可能“丰田”。所以,父类赋值给子类时要作强制类型转换,并且java还提供了instanceof操作,用于判断子类对象是否是父类的类型。父类转型为子类类型时,编译时会通过,但是运行时可能会失败,比如你想把一辆“轿车”转型为“丰田”时,可能会失败,因为它是“保时捷”。也就是说,要是想将一个父类转化成一个子类,只有当父类本身指向的就是一个子类对象(利用多态)。

  3. 父类向子类、子类向父类转型这种上下级之间的转型都存在可能性,但是“兄弟”类之间的平级转型是不合理的,比如把“地铁”转型成“保时捷”,“西瓜”转型成“轿车”肯定是不合理的,这种情况下,在编译期间就已经通不过了。

你可能感兴趣的:(java)