.上转型对象具有如下特点:
(1)失掉了部分属性, 上转对象不能操作子类新增的成员变量
(2)失掉了一些功能, 不能使用子类新增的方法.
上转型对象可以操作子类继承或重写的成员变量, 也可以使用子类继承的或重写的方法.
如果子类重写了父类的某个方法后,当 对象的上转对象调用这个方法时, 一定是调用了这个重写的方法, 因为程序在运行时知道, 这个上转对象的实体是子类创建的, 只不过损失了一些功能而已.
你定义的 Animal ah = new Horse ( ) 就是这类.
向上转型只是把他当作父类来看待,并不损失任何东西,对象没有发生任何变化,只不过你把他当作父类看待,在编译期,你只能通过引用实用其父类的方法,或属性,