天天看点

j2se之对象的上转型对象

上转型对象是将子类的对象赋值给父类的引用,形如:

SuperClass sup = new SubClass();

属性,私有方法、静态方法、final方法都是静态绑定的,即编译期确定的。

其他方法是动态绑定的,即虚拟机运行时确定。

后者才可能出现override的情况。

1 上转型对象不能操作子类新增的成员变量(失掉了这部分属性),不能使用子类新增的方法(失掉了一些功能)。      
2 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。
3 如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了这个重写的方法,因为程序在运行时知道,这个上转型对象的实体是子类创建的,只不过损失了一些功能而已。
如图示:      
j2se之对象的上转型对象

继续阅读