对象的上转型对象
假设B类是A类的子类或间接子类,当用子类B创建一个对象,并把这个对象的应用放到A类的对象中时
A a;
a=new B();
或
A a;
B b=new B();
a=b;
那么,称这个A类对象a是子类对象b的上转型对象
上转型对象特点;
1:上转型对象不能操作子类新增的成员变量(失去这部分属性),不能使用子类新增的方法(失去一些个功能)
2:上转型对象可以操作子类继承或隐藏的成员变量,也可一使用子类继承或重写的方法
3:上转型对象操作子类继承或重写的方法时,就是通知对应的子类对象去调用这些方法
4:可以将对象的上转型对象在强制转换到一个子对象,这时,该子类对象有具有子类的所有属性和功能;
class 类人猿
{
private int n=100;
void crySpeak(String s)
{
System.out.println(s);
}
}
class people extends 类人猿
{
void computer(int a,int b) //子类新增的方法,上转型对象不能引用
{
int c=a*b;
System.out.println(c);
}
void crySpeak(String s)
{
System.out.println("**"+s+"**");//子类重写父类的方法
}
}
class example6
{
public static void main(String args[])
{
类人猿 monkey=new people(); //monkey 是people对象的上转型对象
monkey.crySpeak("I love this game!");
people people1=(people)monkey; //把上转型对象转化为子类的对象
people1.computer(10,10);
}
}