-
为什么使用上转型?因为当一个父类有很多子类,子类都重写了父类的方法并加以使用。这时候,如果要在之前代码让你用其他子类来实现,就变得很简单,只需要把A a = new B();换成A a = new C();(假设B和C都继承了A),其他只要重写父类方法属性之类的无需改动。(当然这只是向上转型的重要一点,还有其他好处,不列举)
-
为什么要向下转型?因为当我们拿到一个父类,我们想把它当作我们需要的具体类时,可以尽情地用到我们要的类的所有方法属性,这时候当然需要向下转型,以便更多使用子类它独有的方法属性,但要确保一定能向下转型成功,不然出大错。