为什么要有向上(下)转型?
因为使得我们可以实现面向接口编程和实现泛型机制
Java 的转型可以分三种情况,分别是:向上转型、向下转型、出错
1、向上转型 是指父类引用指向子类对象。代码如下:
Father A = new Son(); // 向上转型
2、向下转型 是指子类引用指向由父类引用所指的子类对象
Father A = new Son();
Son B = (Son) A;// 此时A虽然是父类引用,但其指向的是一个子类对象,所以能够成功向下转型
即向下转型,必须保证等号右边要转型的引用所指对象本来指向的就是该转型对象。(判断是否能够转型时,与引用的类型无关,和所指对象类型有关)
3、出错 是指子类引用指向父类引用所指的父类对象
Father A = new Son();
Son B = (Son) A; // 出错
出错的原因是 子类方法并不一定存在于父类对象中。但是子类引用又可以调用子类的所有方法,所以会导致出错。