参考书籍:Java面向对象程序设计(第二版)--耿祥义 张跃平编著
当一个类有很多子类,而且这些子类都重写了父类的某个方法时,那么把子类创建的对象的引用放到一个父类的对象中,就得到了一个对象的上转型对象。这个上转型对象在调用这个方法时可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为
例子
动物类
package lianxi2;
public class 动物 {
void cry(){
}
}
狗类
package lianxi2;
class 狗 extends 动物{
void cry() {
System.out.println("汪汪");
}
}
猫类
package lianxi2;
class 猫 extends 动物{
void cry() {
System.out.println("喵喵");
}
}
主类
package lianxi2;
public class Lianxi2 {
public static void main(String args[]){
动物 a=new 狗(); //a是狗的上转型对象
a.cry();
a=new 猫(); //a是猫的上转型对象
a.cry();
}
}
//这样好在不用一个个创建对象
注:多态性是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。