Java多态四:为什么需要向上转型;为什么需要向下转型
世界杯男足
2025-06-30 10:57:07
4539
1.向上转型:为什么需要向上转型
(20210708注:向上转型是java多态中的一个重要内容;然后,多态又是【编写易于维护、扩展的程序】的重要底层支撑。)
如方案1所示,当测试各个子类的eat()方法时,只需要写一个eatTest()方法即可,其会通过向上转型机制,决定去调用哪一个子类的eat方法。
但如果这样:
由上两个例子可以看到,采用向上转型的方案更加简单灵活。如后续再添加新的子类,也无需新增eatTest()方法。
2.向下转型:为什么需要向下转型
向下转型一般是为了重新获得因为向上转型而丢失的子类特性而存在;因此,通常在向下转型前常有向上转型,而向下转型通常也会结合instanceof一起使用;
借由向下转型,可以在灵活应用多态的基础上,同时兼顾子类的独有特征。
Comments:
(1)为什么需要,向上转型:我的理解,向上转型后,父类引用可以调用子类重写父类的方法,这样当需要新添功能时,可以新增一个(子)类即可,而不用更改原父类代码。(20200914)