我知道,转换实际上只能从子类到超类(向上转换)完成,但是此示例说明了我想做的事情。
Class Super {}
Class Sub extends Super {}
Super super = new Super();
Sub sub = (Sub)super;
我相信这被称为“向下”强制转换,因此...
给定类型Super的对象,创建Sub类型的对象的最佳方法是什么。
编辑:
这就是问题-将动物转换为猫的最佳方法是什么?
答案?从基本类型的动物开始,然后将属性复制到猫。添加毛发和尾巴等。基本上是一个复制构造函数。这是正确的答案(或好答案)吗?
另一个编辑:
我认为我的问题很清楚,但也许太笼统了。寻求“最好”的做事方式往往会引起很多不同的反应。我意识到最好的方法在不同情况下可能会有所不同。
我不是在寻找有关Java或OO基础的教程。只是寻求意见,以便我可以使用最佳实践概述该问题。
A Cat
是一个Animal
。
如果我给您一只动物(不必是猫),您将如何将其转换为猫?
编辑:
有一种方法可以执行几乎所有操作。大多数时候,您不应该这样做。我相信更好的设计将消除向下转换的需求。但是你可以:
有一个Super
带有Sub
作为参数的构造函数。
实现一个工厂,Super
并有一个采用Sub
as作为参数的方法。
我建议您扩大问题范围,准确告诉我们您的需求,因为我确实认为存在更优雅的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句