例如,B类是A类的子类或间接子类,当子类B创建一个对象,并把这个对象赋给类A的引用变量,那么,称这个A类对象a是子类对象b的向上转型的对象。
这个向上转型的对象还可以通过强制类型转换还原成它本来的类型,被称为对象的向下转型。
class A {}
class B extends A{}
A a;
B b1 = new B();
a = b1; // 向上转型
B b2 = (B) a; // 向下转型
向上转型的对象具有如下特点:
(1) 向上转型对象不能操作子类新增的成员属性和方法(失掉了这部分功能)。
(2) 向上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。
(3) 向上转型对象操作子类继承或重写的方法时,就是通知对应的子类对象去调用这些方法。
因此,如果子类重写了父类的某个方法后,对象的向上转型对象调用这个方法时,一定是调用了这个重写的方法。
(4) 可以将向上转型对象再强制转换到它本来的类型,该对象又具备了其所有属性和方法。
|
|