参考转载的博客
https://www.cnblogs.com/lifexy/p/10812841.html
补充理解:
- 向上转型后的,被实例化的父类,不能调用 子类特有的方法只能调用自己的方法和被子类覆盖的方法。
- 向上转型后,父类调用被子类覆盖的方法执行时不再执行父类本身的方法逻辑,而是执行了子类的覆盖方法的逻辑。如果此时想在覆盖方法中调用父类的方法,可以使用super.方法名() 的形式调用。
- 向上转型后,被实例的父类在使用 instanceof时,它既属于父类实例也属于子类实例。
- 向下转型时,被实例化的子类,可以调用子类特有的方法。 也可以调用覆盖父类的方法,当然,覆盖的方法是子类方法的逻辑。