我知道强制转换实际上只能从子类到超类(向上强制转换)完成,但这个示例说明了我想做的事情。
Class Super {}
Class Sub extends Super {}
Super super = new Super();
Sub sub = (Sub)super;
我相信这被称为“向下”铸造,这是不允许的,所以......
给定 Super 类型的对象,创建 Sub 类型的对象的最佳方法是什么。
EDIT:
这就是问题 - 将动物转变为猫的最佳方法是什么。
答案?从基本类型动物开始并将属性复制到猫。添加毛皮和尾巴等。基本上是一个复制构造函数。这是正确的答案(或好的答案)吗?
另一个编辑:
我认为我的问题很清楚,但也许太笼统了。询问做某事的“最佳”方法往往会给出很多不同的答案。我意识到在不同的情况下最好的方法可能会有所不同。
我不是在寻找有关 Java 或 OO 基础知识的教程。只是征求意见,这样我就可以解决这个问题,正如我使用最佳实践概述的那样。
A Cat
is an Animal
.
如果我给你一种动物(不一定是猫),你会如何把它变成猫?
EDIT:
几乎任何事情都有办法做。大多数时候,你不应该这样做。我相信更好的设计将消除向下转型的需要。但是你可以:
我建议您扩展您的问题,准确地告诉我们您需要什么,因为我确实认为存在更优雅的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)