向上转型就是子类向父类转型,它们是IS-A的关系,子类继承了父类的所有变量和方法,它完全可以表现父类的特征,不会产生歧义,就好比麻雀和鸟的关系,向上转型就是麻雀是鸟,没有任何歧义
我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过
Cat c = new Cat();
实例化一个Cat的对象,这个不难理解。但当我这样定义时:
Animal a = new Cat();
这代表什么意思呢?
很简单,它表示我定义了一个Animal类型的引用,指向新建的Cat类型的对象。由于Cat是继承自它的父类Animal,所以Animal类型的引用是可以指向Cat类型的对象的。这就是“向上转型”。 |