为了调用时能够无差别的接收狗、猫。例如宠物店要写一个卖猫、狗、猪、兔的功能,你不能为猫、狗、猪、兔都写一个卖的功能,也就是为了代码的复用性,你直接写一个卖动物的功能,只要将该功能接收定义为(Animal a ),你就可以接收所有继承了动物类的猫、狗。这也就是为什么要向上转型的原因了。然后你要使用具体是猫抓鱼、狗追猫的特有功能时,因为动物并不都要抓鱼追猫,所以接收进来的Animal a = new Cat(),就要向下转型为Cat c=(Cat)a;这样这个动物就具体为 Cat了,自然就可以抓鱼了。>>>>个人理解。我也刚看完这一段不久,来回看来回看,慢慢体会。 |