向上转型,子类转为父类,比如:父类animal,子类dog继承animal。
使用多态定义是这样:Animal an = new Dog();父类引用指向子类对象,这就是向上转型,new出的是子类dog对象,赋给了animal对象,子类转为父类。向上转型是安全的,可以说狗是动物。使用向上转型是为了引入多态,下次不生成狗了,要生成猫,只需改an = new Cat()即可。
向下转型,父类转为子类,比如Dog d = (Dog)an;把父类对象an,转化为dog对象d;父类转化为子类,这样是为了引用子类中新的方法。向下转型是不安全的,因为不能说动物是一只狗。
为了避免向下转型的不安全,java中的许多方法都引入了泛型。
楼主有兴趣可以学学。 |