java 的多态性:(所谓多态--就是指一个引用(类型)在不同情况下的多种状态)
1.方法的多态:
重载(overload)
重写(覆盖 override)
2.对象的多态性:(本人这里要说的)
对象的多态性体现在继承的过程中,子类与其父类对象之间的类型转换关系。
(1) 向上转型(子类对象-->父类对象):在创建对象时,对象可以作为本身的类型引用,可以作为父类型的引用
(将一个子类对象直接赋值给一个父类的应用变量),java中允许父类的引用变量引用它子类的实例(对象)
如:Animal animal=new Cat(); //动物类(Animal)作为父类直接引用子类(猫类(Cat))
这种转换是自动完成的。
(2) 向下转型(父类对象-->子类对象):将父类的对象作为其子类的类型引用(需要强制类型转换)
如:Cat cat=(Cat)animal; //向下转必须要先产生一个向上转型关系
如果是这样:Cat cat=(Cat) new Animal(); //编译也许不会错,但运行时回报java.lang.ClassCastException(转换异常)