参考:https://blog.csdn.net/qq_31655965/article/details/54746235
这篇文章讲的很好,有以下几点总结:
1.向上转型
Father father = new Son();
father可以调用Son类中重写父类的方法,但不能调用Son类中其它方法;
优点:方法的形参是父类对象;调用方法时,传入的实参是子类对象,方法中的父类形参对象却可以访问子类中重写父类的方法;
缺点:父类还是不能访问子类自己的方法;
2.向下转型
Father father = new Son(); //要先向上转型
Son son =(Son) father; //再向下转型
优点:先通过向上转型,使子类对象得以以参数的形式传给方法,然后在方法中将父类对象再赋值给子类对象,这样就可以进一步实现多态,即在方法中自由访问子类自己的方法。