假设,A类是B类的父类,当我们用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如A a;
A=new B();
或
A a;
B b=new B();
a=b;
称这个父类对象 a,是子类对象b的上转型对象。好比说“老虎是哺乳动物”。对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。上转型对象具有如下特点:
1 上转型对象不能操作子类新增的成员变量(失掉了这部分属性),不能使用子类新增的方法(失掉了一些功能)。
2 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。
3 如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了这个重写的方法。
A=new B();
或
A a;
B b=new B();
a=b;
称这个父类对象 a,是子类对象b的上转型对象。好比说“老虎是哺乳动物”。对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。上转型对象具有如下特点:
1 上转型对象不能操作子类新增的成员变量(失掉了这部分属性),不能使用子类新增的方法(失掉了一些功能)。
2 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。
3 如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了这个重写的方法。
java的上转型对象,可以理解为一次寻根之旅。一层层向上,追本溯源。