多态
- 当一个类有很多子类的时候,并且这些子类都重写了父类的某个方法。那我们把子类创建的对象的引用放到父类中时,就得到一个子类对象的一个上转型对象,那么这个上转型对象在调用这个方法时就可能具有很多种形态,因为不同子类在重写父类方法时可能产生不同的行为。
- 多态性就是指父类的某方法被子类重写时,可以产生各自的功能行为。
package 第六章;
class 动物{
void cry(){
}
}
class 狗 extends 动物{
void cry(){ //重写父类方法
System.out.println("汪汪...");
}
}
class 猫 extends 动物{
void cry(){ //重写父类方法
System.out.println("喵喵...");
}
}
public class 多态 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
动物 animal; //创建一个可以做上转型对象的对象
animal = new 狗(); //此时animal成为狗的上转型对象
animal.cry(); //调用子类“狗”中的重写方法
animal = new 猫(); //此时animal又成为了猫的上转型对象
animal.cry(); //调用子类“猫”中的重写方法
//狗 a = (狗)animal; 此语句的作用是把上转型对象强制转换为子类的对象(这时这个子类对象a又具备了子类“狗”的所有功能和属性)
}
}