理解对象的上转型对象
1.概念
上转型对象就是把子类创建的对象的引用放到父类对象的身上;
若子类创建的对象为a,父类创建的对象为b;
a=b;
称a是b的上转型对象
此时通过a调用的方法是子类继承或重写的方法,但是调用的属性还是父类的属性;
2.补充
可以将对象的上转型对象强制转化到一个子类对象,这时,该子类对象又具备了子类所有的属性和功能;
若子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法;
不能将父类创建的对象的引用赋值给子类声明的对象;
3.实例
class 类人猿{
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+"%%%");
}
}
public class object {
public static void main(String arg[]) {
类人猿 monkey;
people bulu=new people();
monkey=bulu; //monkey是bulu的上转型
monkey.crySpeak("哇哇哇");
people bulu2=(people)monkey; //将上转型对象强制转化为子类对象
bulu2.computer(10, 10);
}
}
运行结果
***哇哇哇%%%
100