1.对象的多态性指的是:
(1)向上转型: 子类(B)对象------》父类(A)对象 (程序中的体现是:A a = new B() )
(2)向下转型: 父类对象------》子类对象 (程序中:A a = new B() ; B b = (B) a )
2.子类实例化的对象其实既是子类的对象,又是父类的对象,而父类定义的对象只是父类的对象。所以向下转型的时候必须使用 子类实例化 对象。
3.如果对象发生了向上转型,父类对象 a 调用的一定是被子类覆写过的方法,并且不能调用子类自己定义的其他方法(覆写方法外的方法)。
4.如果对象发生了向下转型,子类对象b可以调用自己定义的方法,也可以调用父类的方法,如果父类方法已被该子类覆写,则对象调用的仍然是子类覆写后的方法。