若A类是父类,B类是A类的直接或间接子类,如果用B类创建一个对象放在A类的对象引用里,如:
A a;a=new B;或者 A a;B b=new B();a=b; 则类A的对象a是类B的对象b的上转型对象。
(1)上转型变量只能访问继承或隐藏的变量、继承或重写的方法;不可以使用子类新增的变量或新增的方法。
(2)可以把上转型对象强制转换成一个子类对象,此时子类对象又可以访问所有的子类变量和方法。如:
A aa=(A)a;
(3)不可将父类创建的对象引用赋值给子类声明的对象。
若A类是父类,B类是A类的直接或间接子类,如果用B类创建一个对象放在A类的对象引用里,如:
A a;a=new B;或者 A a;B b=new B();a=b; 则类A的对象a是类B的对象b的上转型对象。
(1)上转型变量只能访问继承或隐藏的变量、继承或重写的方法;不可以使用子类新增的变量或新增的方法。
(2)可以把上转型对象强制转换成一个子类对象,此时子类对象又可以访问所有的子类变量和方法。如:
A aa=(A)a;
(3)不可将父类创建的对象引用赋值给子类声明的对象。